Анализ покупательской способности и плотности потока клиентов по часам позволяет оптимизировать график работы кассиров, оценить пиковые нагрузки и рассчитать средний чек. В типовых конфигурациях для торговли уже есть готовые механизмы, однако при необходимости можно собрать индивидуальный отчет с помощью системы компоновки данных (СКД). Разберем оба варианта: использование типового функционала и разработку собственного отчета на СКД.
Если используется конфигурация «1С:Розница» (или аналогичные торговые решения), нет необходимости разрабатывать отчет с нуля. В составе типовой конфигурации предусмотрен блок специализированных отчетов по анализу чеков:
Эти отчеты уже содержат стандартные отборы по магазинам (складам), кассам ККМ, периодам и позволяют быстро получить требуемую аналитику без доработки конфигурации.
Если требуется нестандартная группировка (например, одновременное сравнение двух периодов или жесткий фильтр по номенклатуре с пересчетом общего чека), отчет создается в схеме компоновки данных. Разберем ключевые этапы построения такого отчета.
1. Получение часовых интервалов в запросе
Для группировки продаж по часам в языке запросов используется функция ЧАС(). Чтобы представить результат в виде наглядного интервала времени (например, «09:00 - 10:00»), сформируем строковое поле или применим вычисляемое поле в СКД. Посмотрим на пример запроса к регистру продаж или чекам:
ВЫБРАТЬ
ЧАС(ЧекККМ.Дата) КАК ЧасПродажи,
ЧекККМ.Ссылка КАК ЧекСсылка,
ЧекККМ.СуммаДокумента КАК СуммаВыручки,
ЧекККМ.КассаККМ КАК КассаККМ,
ЧекККМ.Склад КАК Склад
ИЗ
Документ.ЧекККМ КАК ЧекККМ
ГДЕ
ЧекККМ.Проведен = ИСТИНА
И ЧекККМ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
Чтобы часы без продаж не выпадали из итоговой таблицы, сформируем вспомогательную таблицу чисел от 0 до 23 и свяжем ее с таблицей продаж через ЛЕВОЕ СОЕДИНЕНИЕ.
2. Корректный подсчет количества чеков и среднего чека
При детализации по номенклатуре в одной транзакции может присутствовать несколько строк. Использование функции КОЛИЧЕСТВО() вернет число товарных позиций, а не количество покупателей. Выясним причину: один чек порождает несколько записей. Поэтому в СКД необходимо вычислять уникальные чеки.
На вкладке Ресурсы схемы компоновки данных настроим расчет показателей следующим образом:
Количество(Различные ЧекСсылка).Сумма(СуммаВыручки).
Сумма(СуммаВыручки) / Выбор
Когда Количество(Различные ЧекСсылка) = 0 Тогда 1
Иначе Количество(Различные ЧекСсылка)
Конец
3. Сравнение периодов
Для реализации сравнения с прошлым периодом добавим в набор данных объединение с аналогичным запросом по параметрам &ДатаНачалаСравнения и &ДатаОкончанияСравнения. Каждой ветке объединения присвоим строковую метку (например, "Основной период" и "Период сравнения"). В настройках отчета выведем структуру в виде кросс-таблицы, где в строках будет группировка по часам, а в колонках — период.
4. Учет документов возврата
Проанализируем специфику возвратов: документы возврата уменьшают итоговую выручку, но не должны искажать статистику количества обслуженных покупателей как положительные продажи. В запросе рекомендуется фильтровать возвраты или вычитать их сумму из оборота, исключая их из подсчета уникальных чеков покупки.