Как сформировать или разработать отчет по покупательской способности и статистике чеков по часам в 1С

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Анализ покупательской способности и плотности потока клиентов по часам позволяет оптимизировать график работы кассиров, оценить пиковые нагрузки и рассчитать средний чек. В типовых конфигурациях для торговли уже есть готовые механизмы, однако при необходимости можно собрать индивидуальный отчет с помощью системы компоновки данных (СКД). Разберем оба варианта: использование типового функционала и разработку собственного отчета на СКД.

Вариант 1. Использование типовых отчетов конфигурации

Если используется конфигурация «1С:Розница» (или аналогичные торговые решения), нет необходимости разрабатывать отчет с нуля. В составе типовой конфигурации предусмотрен блок специализированных отчетов по анализу чеков:

  1. СтатистикаЧековПоЧасам — выводит распределение количества чеков, выручки и среднего чека по часовым интервалам суток.
  2. СтатистикаЧековПоДнямНедели — позволяет выявить наиболее загруженные дни недели.
  3. СтатистикаЧеков — сводный отчет с общими показателями динамики продаж по кассам и магазинам.

Эти отчеты уже содержат стандартные отборы по магазинам (складам), кассам ККМ, периодам и позволяют быстро получить требуемую аналитику без доработки конфигурации.

Вариант 2. Разработка собственного отчета на СКД

Если требуется нестандартная группировка (например, одновременное сравнение двух периодов или жесткий фильтр по номенклатуре с пересчетом общего чека), отчет создается в схеме компоновки данных. Разберем ключевые этапы построения такого отчета.

1. Получение часовых интервалов в запросе

Для группировки продаж по часам в языке запросов используется функция ЧАС(). Чтобы представить результат в виде наглядного интервала времени (например, «09:00 - 10:00»), сформируем строковое поле или применим вычисляемое поле в СКД. Посмотрим на пример запроса к регистру продаж или чекам:


ВЫБРАТЬ
    ЧАС(ЧекККМ.Дата) КАК ЧасПродажи,
    ЧекККМ.Ссылка КАК ЧекСсылка,
    ЧекККМ.СуммаДокумента КАК СуммаВыручки,
    ЧекККМ.КассаККМ КАК КассаККМ,
    ЧекККМ.Склад КАК Склад
ИЗ
    Документ.ЧекККМ КАК ЧекККМ
ГДЕ
    ЧекККМ.Проведен = ИСТИНА
    И ЧекККМ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

Чтобы часы без продаж не выпадали из итоговой таблицы, сформируем вспомогательную таблицу чисел от 0 до 23 и свяжем ее с таблицей продаж через ЛЕВОЕ СОЕДИНЕНИЕ.

2. Корректный подсчет количества чеков и среднего чека

При детализации по номенклатуре в одной транзакции может присутствовать несколько строк. Использование функции КОЛИЧЕСТВО() вернет число товарных позиций, а не количество покупателей. Выясним причину: один чек порождает несколько записей. Поэтому в СКД необходимо вычислять уникальные чеки.

На вкладке Ресурсы схемы компоновки данных настроим расчет показателей следующим образом:

  1. Количество чеков: укажем выражение Количество(Различные ЧекСсылка).
  2. Оборот (выручка): укажем выражение Сумма(СуммаВыручки).
  3. Средний чек: среднее значение рассчитывается как отношение агрегированной суммы к количеству уникальных документов:

Сумма(СуммаВыручки) / Выбор 
    Когда Количество(Различные ЧекСсылка) = 0 Тогда 1 
    Иначе Количество(Различные ЧекСсылка) 
Конец

3. Сравнение периодов

Для реализации сравнения с прошлым периодом добавим в набор данных объединение с аналогичным запросом по параметрам &ДатаНачалаСравнения и &ДатаОкончанияСравнения. Каждой ветке объединения присвоим строковую метку (например, "Основной период" и "Период сравнения"). В настройках отчета выведем структуру в виде кросс-таблицы, где в строках будет группировка по часам, а в колонках — период.

4. Учет документов возврата

Проанализируем специфику возвратов: документы возврата уменьшают итоговую выручку, но не должны искажать статистику количества обслуженных покупателей как положительные продажи. В запросе рекомендуется фильтровать возвраты или вычитать их сумму из оборота, исключая их из подсчета уникальных чеков покупки.

← На главную