Как в 1С:Розница получить раскладку чеков по таймлайну (дата и время) за прошедший период

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

При анализе эффективности розничной точки часто возникает необходимость не просто увидеть общую сумму выручки, но и проанализировать плотность потока покупателей. Раскладка чеков по таймлайну (график пробития чеков в течение дня) позволяет выявить пиковые часы нагрузки, оптимизировать график работы персонала и оценить влияние маркетинговых акций на трафик. В типовых конфигурациях 1С, таких как «Розница», «Управление торговлей» или «УНФ», для этого предусмотрено несколько механизмов — от стандартных отчетов до глубокого анализа технических регистров.

В этой статье мы разберем по шагам, откуда можно извлечь данные о времени каждого чека, как использовать встроенные возможности системы и что делать, если данные в базе 1С были заархивированы или очищены.

Способ 1. Использование технического регистра «Фискальные данные»

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

Рассмотрим подробнее, как работать с этим регистром:

  1. Откройте «Функции для технического специалиста» (или через «Все функции», если используете старые версии платформы).
  2. Найдите регистр сведений ФискальныеДанные.
  3. Проанализируйте его структуру: здесь фиксируется не только дата и время пробития чека, но и номер фискального документа, номер смены и сумма.

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ФискальныеДанные.Период КАК ДатаВремяЧека,
    |	ФискальныеДанные.Сумма КАК СуммаЧека,
    |	ФискальныеДанные.НомерЧека КАК Номер
    |ИЗ
    |	РегистрСведений.ФискальныеДанные КАК ФискальныеДанные
    |УПОРЯДОЧИТЬ ПО
    |	ДатаВремяЧека";

Важно помнить, что поле Период в этом регистре максимально точно отражает момент фискализации операции.

Способ 2. Стандартные аналитические отчеты в «1С:Розница»

Если вы выступаете в роли бизнес-аналитика или руководителя, вам не обязательно обращаться к коду. Разберем, какие встроенные отчеты позволяют получить нужную информацию «из коробки».

Отчет «Продажи по часам»
Это основной инструмент для анализа таймлайна в «1С:Рознице». Чтобы его найти, перейдите в раздел Продажи — Отчеты по продажам. Этот отчет автоматически группирует данные по часовым интервалам. Мы можем увидеть:

Универсальный отчет по документам «Чек ККМ»
Если типовой отчет кажется слишком ограниченным, мы можем воспользоваться Универсальным отчетом. Выясним, как его правильно настроить:

  1. Выберите тип объекта: Документ, имя объекта: Чек ККМ.
  2. Перейдите в настройки на вкладку «Группировки».
  3. Добавьте поле Дата и в колонке «Тип дополнения» выберите нужную детализацию: По минутам или По часам.
  4. На вкладке «Показатели» оставьте Сумма документа и Количество.

Такой подход позволит вам увидеть поминутную раскладку всех розничных операций за любой исторический период, хранящийся в базе.

Способ 3. Получение данных через API оператора фискальных данных (ОФД)

Иногда возникают ситуации, когда данные в 1С неполные (например, из-за сбоев обмена или очистки архива чеков). В этом случае самым достоверным источником будет личный кабинет вашего ОФД. Посмотрим на этот процесс с технической стороны.

Все современные ОФД (Такском, Эвотор, Платформа ОФД и др.) предоставляют API для разработчиков. Проанализируем преимущества работы через API:

Для реализации интеграции вам потребуется получить токен доступа в личном кабинете ОФД и настроить HTTP-запрос из 1С. Вы получите ответ в формате JSON, который легко распарсить и загрузить в таблицу значений для дальнейшего построения таймлайна.

Способ 4. Извлечение данных из «железа» (ФН и драйвер ККТ)

Если связи с ОФД нет, а данные в 1С утеряны, мы можем обратиться напрямую к кассовому аппарату. Выясним, как это работает:

Внутри кассы находится Фискальный накопитель (ФН). Он хранит в себе информацию обо всех пробитых чеках в зашифрованном виде. Используя утилиты от производителя (например, «Тест драйвера АТОЛ» или «Драйвер Штрих-М»), можно выполнить операцию выгрузки итогов или чтения записей ФН.

Также полезно проверить логи драйвера ККТ на локальном компьютере, где установлена касса. Драйвер часто записывает XML-пакеты всех операций, отправленных на печать. Проанализировав эти текстовые файлы, можно восстановить хронологию продаж с точностью до секунды.

Нюансы, на которые стоит обратить внимание

При построении таймлайна важно учитывать несколько критических моментов, которые могут исказить статистику:

  1. Архивация чеков: В настройках 1С:Розницы часто стоит галочка «Удалять чеки при закрытии смены» или «Архивировать чеки». Если она включена, сами документы ЧекККМ могут исчезнуть, оставив только общие суммы в документе ОтчетОРозничныхПродажах. В этом случае вашим спасением станет именно регистр ФискальныеДанные.
  2. Часовые пояса: Если у вас сеть магазинов в разных регионах, помните, что 1С записывает время по локальному времени сервера или кассового узла. Для построения единого таймлайна по всей сети необходимо приводить все данные к UTC.
  3. Задержки отправки: Время пробития чека в 1С и время его фискализации в ККТ могут различаться на несколько секунд или даже минут (если касса была занята или возникла очередь печати). Для аналитики маркетинга это не критично, но для технических расследований лучше использовать время из фискального признака.

Подводя итог, мы видим, что 1С предоставляет достаточно инструментов для детального анализа таймлайна продаж. Начните с простых стандартных отчетов Продажи по часам, и если их функционала будет недостаточно, переходите к запросам к регистру ФискальныеДанные или использованию внешних API ОФД.

← На главную