Среднее и сумма в одной колонке СКД
Клиенту нужно было, чтобы в одной колонке для одной статьи (количество) считалась сумма, а для другой (средний чек) — среднее:
Я сначала призадумался, задача показалась сложной, но сразу же пришло решение. Я добавил поле ПоказательТип и написал выражение ресурса в зависимости от этого значения:
ВЫБОР КОГДА ПоказательТип = "Среднее" Тогда Среднее(Значение) ИНАЧЕ Сумма(Значение) КОНЕЦ
В структуре отчета это выглядит так:
Среднее считается правильно не только на уровне Показатель, но и ниже.
Код по заполнению таблицы выглядит примерно так:
Для Каждого Период ИЗ глПериоды Цикл Дата1 = Период; Дата2 = КонецМесяца(Период); ТЗ = КоличествоЧеков(Дата1, Дата2); Для Каждого Строка ИЗ ТЗ Цикл НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Количество чеков по разным группам клиентов (розница, опт, сайт)"; НСтр.Период = Период; НСтр.Статья = Строка.ВидДокументаПродажи; НСтр.Значение = Строка.КоличествоДокументов; КонецЦикла; Для Каждого Строка ИЗ ТЗ Цикл НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Средний чек по разным группам клиентов (розница, опт, сайт)"; НСтр.ПоказательТип = "Среднее"; НСтр.Период = Период; НСтр.Статья = Строка.ВидДокументаПродажи; НСтр.Значение = Строка.СредняяСумма; КонецЦикла; КонецЦикла;
UPD: Мне заметили, что я неправильно считаю средний чек. Поправил:
Для Каждого Строка ИЗ ТЗ Цикл НСтр = ТЗРез.Добавить(); НСтр.Показатель = "Средний чек по разным группам клиентов (розница, опт, сайт)"; НСтр.ПоказательТип = "СреднийЧек"; Нстр.ЦветоваяГруппа= "Метрика"; НСтр.Период = Период; НСтр.Статья = Строка.ВидДокументаПродажи; НСтр.Значение = Строка.СуммаДокументов; НСтр.Значение2 = Строка.КоличествоДокументов; КонецЦикла;
Заполняю два показателя и для вычисления ресурса использую другую формулу:
ВЫБОР КОГДА ПоказательТип = "СреднийЧек" Тогда ВЫБОР КОГДА Сумма(Значение2) = 0 ТОГДА 0 ИНАЧЕ Сумма(Значение) / Сумма(Значение2) КОНЕЦ ИНАЧЕ Сумма(Значение) КОНЕЦ
Платформа: 8.3.17.2171 Среда: УТ 11.4.13.46. Объем 0.5 час.
Брать СРЕДНЕЕ для вычисления средней суммы/суммы/чека это зашквар конечно.
Средний чек по трем этим группам чуть менее 7200, а у тебя 11156. Учи арифметику и статистику
Спасибо за замечание. проверю.
Но суть статьи не об этом, она о разных функциях в СКД. Это важно.