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