При работе кассиров в программе «1С:Розница» (а также в других конфигурациях на базе Библиотеки подключаемого оборудования — БПО) часто возникает ситуация, когда при отмене чека в рабочем месте кассира (РМК) на чековой ленте печатается текст «Чек аннулирован», однако в суточных X- и Z-отчетах в разделе «Аннулирование» или «Сторно» по-прежнему красуется нулевой показатель. Давайте детально разберем архитектуру взаимодействия программных решений «1С» с фискальными регистраторами АТОЛ, выясним технические причины такого поведения оборудования и рассмотрим, как правильно контролировать действия кассиров в подобных сценариях.
Чтобы понять, почему счетчик аннулированных чеков в ККТ остается равным нулю, проанализируем разницу в подходах к регистрации продаж. Существует два принципиально разных метода работы программ автоматизации с кассовыми аппаратами:
CancelCheck (ОтменитьЧек). Поскольку в памяти кассы уже были зарегистрированы позиции, ККТ физически аннулирует этот буфер, печатает на ленте «Чек аннулирован» и увеличивает счетчик аннулированных чеков в регистрах для Z-отчета.Рассмотрим подробнее, что происходит, когда кассир нажимает кнопку «Аннулировать» (или очищает корзину) в РМК до совершения оплаты. В этот момент 1С просто очищает экран компьютера. Поскольку на ККТ физически не был открыт чек и в его оперативную память не передавались товарные позиции, кассовому аппарату попросту нечего аннулировать в своих регистрах. Счетчик аннулирования закономерно остается равен нулю.
Проанализируем терминологию, заложенную разработчиками драйверов АТОЛ. В фискальных регистраторах семейства Fprint понятия «отмененный чек» и «аннулирование» имеют совершенно разное значение:
CloseCheck. На чеке печатается системное сообщение «Чек аннулирован», но в регистрах суточных отчетов ККТ эта операция никак не фиксируется, так как транзакция продажи не была завершена.AddIn.ATOL_KKM_1C не предоставляет прямого доступа к этой операции. Полноценная корректировка или возврат оформляются стандартными чеками возврата.Посмотрим на пример концептуальной схемы работы драйвера, иллюстрирующий, почему при стандартной отмене счетчики не увеличиваются:
// Схема пакетной печати чека в 1С
Процедура ПробитьЧекНаККТ(ТаблицаТоваров)
Попытка
Драйвер.ОткрытьЧек();
Для Каждого Строка Из ТаблицаТоваров Цикл
// Регистрация позиций в ККТ происходит только сейчас!
Драйвер.РегистрироватьПозицию(Строка.Номенклатура, Строка.Количество, Строка.Цена);
КонецЦикла;
Драйвер.ЗакрытьЧек(); // Чек успешно фискализирован
Исключение
// Если произошел сбой при отправке пакета
Драйвер.ОтменитьЧек(); // На чеке напечатается "Чек аннулирован",
// но в Z-отчет данные не попадут, т.к. чек не был закрыт
КонецПопытки;
КонецПроцедуры
С переходом на онлайн-кассы и введением жестких стандартов ФФД (1.05, 1.1, 1.2), использование аппаратных счетчиков «Аннулировано» в Z-отчетах полностью потеряло практический смысл для контролирующих органов. Федеральная налоговая служба (ФНС) и операторы фискальных данных (ОФД) не получают информацию об отмененных внутри ККТ транзакциях до их фискализации.
Для исправления любых ошибок, допущенных кассиром, законодательство требует использования строго регламентированных фискальных документов:
Следовательно, любые попытки доработать код 1С или перенастроить драйвер кассы АТОЛ (например, переходя на использование низкоуровневой библиотеки AddIn.FPrnM45) с целью искусственно накрутить счетчик аннулированных чеков в ККТ являются нецелесообразными и бессмысленными.
Если перед руководством бизнеса стоит задача пресечь случаи потенциального мошенничества (когда кассир сканирует товар, показывает покупателю сумму, берет наличные, а затем аннулирует чек в интерфейсе 1С и забирает деньги себе), опираться на отчеты ККТ АТОЛ не нужно. Всю необходимую информацию хранит сама система «1С:Розница».
Для решения этой задачи выполним настройку логирования действий персонала:
Иногда кассиры сталкиваются со случаем, когда ККТ АТОЛ действительно сама печатает ленту с надписью «Чек аннулирован» непосредственно во время попытки пробить продажу. Разберем одну из самых неочевидных причин этой проблемы, связанную с настройками конфигурации 1С.
Если в карточке организации (в справочнике Организации) или в параметрах учетной политики в 1С не заполнена (или заполнена некорректно) **Система налогообложения (СНО)**, программа при формировании пакета данных отправляет на ККТ пустое значение налога или несовместимые параметры. Фискальный регистратор, обрабатывая полученную транзакцию, обнаруживает логическое противоречие со своими внутренними настройками (в ККТ жестко прошиты доступные СНО для конкретного юрлица), прерывает операцию и выдает ошибку. На чековой ленте при этом печатается «Чек аннулирован».
Порядок действий для устранения этой ошибки: