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