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