В процессе розничных продаж в конфигурации «1С:Управление торговлей 11» нередко возникает ситуация, когда после закрытия кассовой смены и архивации чеков выясняется, что в сформированном документе ОтчетОРозничныхПродажах по ошибке были удалены или изменены строки. В результате часть проданных товаров «выпадает» из учета. Разберем, можно ли и нужно ли «разархивировать» документы ЧекККМ, как устроена их архитектура и какие существуют корректные способы восстановления учетных данных.
Проанализируем архитектуру работы розничного блока в 1С:УТ 11. Признак архивности чека задается перечислением статусов документа (статус «Архивный»). Механизм учета устроен следующим образом:
ЧекККМ формирует оперативные движения по складским остаткам и кассе ККМ.ОтчетОРозничныхПродажах, который принимает на себя все постоянные движения: списание себестоимости, расчеты, складской и финансовый учет.ЧекККМ намеренно удаляются из регистров накопления для оптимизации производительности базы данных, а сам чек переходит в статус архивного.В модулях проведения конфигурации заложен жесткий контроль: если документ ЧекККМ имеет статус «Архивный», формирование движений по регистрам блокируется. Попытка программно снять признак архивности (даже с использованием ОбменДанными.Загрузка = Истина) и заново провести чеки несет в себе критические риски:
ОтчетОРозничныхПродажах, повторное проведение чеков приведет к дублированию списания остатков и выручки.Рассмотрим самый быстрый и штатный способ исправления ситуации, если период еще не закрыт для редактирования. В 1С:УТ 11 каждому документу ОтчетОРозничныхПродажах соответствует родительский документ КассоваяСмена.
Выполним следующие шаги:
КассоваяСмена за ту дату, где возникли расхождения в отчете.ОтчетОРозничныхПродажах.Если требуется предварительно проанализировать, какие именно позиции были удалены из отчета, нет никакой необходимости проводить чеки по регистрам. Табличные части «Товары» и «Оплаты» архивных чеков остаются доступными для чтения через запросы и отчеты.
Разберем, как сопоставить строки чеков и отчета с помощью консоли запросов:
ВЫБРАТЬ
ЧекиТовары.Номенклатура КАК Номенклатура,
ЧекиТовары.Характеристика КАК Характеристика,
СУММА(ЧекиТовары.Количество) КАК КоличествоЧеки,
СУММА(ЧекиТовары.Сумма) КАК СуммаЧеки
ПОМЕСТИТЬ ВТ_Чеки
ИЗ
Документ.ЧекККМ.Товары КАК ЧекиТовары
ГДЕ
ЧекиТовары.Ссылка.КассоваяСмена = &КассоваяСмена
И ЧекиТовары.Ссылка.Проведен = ИСТИНА
СГРУППИРОВАТЬ ПО
ЧекиТовары.Номенклатура,
ЧекиТовары.Характеристика
;
ВЫБРАТЬ
ОРПТовары.Номенклатура КАК Номенклатура,
ОРПТовары.Характеристика КАК Характеристика,
СУММА(ОРПТовары.Количество) КАК КоличествоОРП,
СУММА(ОРПТовары.Сумма) КАК СуммаОРП
ПОМЕСТИТЬ ВТ_ОРП
ИЗ
Документ.ОтчетОРозничныхПродажах.Товары КАК ОРПТовары
ГДЕ
ОРПТовары.Ссылка = &СсылкаОРП
СГРУППИРОВАТЬ ПО
ОРПТовары.Номенклатура,
ОРПТовары.Характеристика
;
ВЫБРАТЬ
ЕСТЬNULL(ВТ_Чеки.Номенклатура, ВТ_ОРП.Номенклатура) КАК Номенклатура,
ЕСТЬNULL(ВТ_Чеки.Характеристика, ВТ_ОРП.Характеристика) КАК Характеристика,
ЕСТЬNULL(ВТ_Чеки.КоличествоЧеки, 0) КАК КоличествоЧеки,
ЕСТЬNULL(ВТ_ОРП.КоличествоОРП, 0) КАК КоличествоОРП,
ЕСТЬNULL(ВТ_Чеки.КоличествоЧеки, 0) - ЕСТЬNULL(ВТ_ОРП.КоличествоОРП, 0) КАК РазницаКоличество,
ЕСТЬNULL(ВТ_Чеки.СуммаЧеки, 0) - ЕСТЬNULL(ВТ_ОРП.СуммаОРП, 0) КАК РазницаСумма
ИЗ
ВТ_Чеки КАК ВТ_Чеки
ПОЛНОЕ СОЕДИНЕНИЕ ВТ_ОРП КАК ВТ_ОРП
ПО ВТ_Чеки.Номенклатура = ВТ_ОРП.Номенклатура
И ВТ_Чеки.Характеристика = ВТ_ОРП.Характеристика
ГДЕ
ЕСТЬNULL(ВТ_Чеки.КоличествоЧеки, 0) <> ЕСТЬNULL(ВТ_ОРП.КоличествоОРП, 0)
Также для пользователей без навыков программирования удобным инструментом является стандартный «Универсальный отчет». Достаточно выбрать тип данных «Документ», объект «Чек ККМ», таблицу «Товары» и установить отбор по конкретной кассовой смене.
Если дата запрета изменения данных уже не позволяет перезаполнить или отредактировать исходный ОтчетОРозничныхПродажах, восстановить учетные остатки можно следующими методами:
Таким образом, попытки программной разархивации чеков не требуются и могут нарушить целостность базы. Для решения проблемы достаточно использовать типовые механизмы перезаполнения отчета из кассовой смены либо внести точечные корректировки на основании данных самих чеков.