При переходе на требования 54-ФЗ и интеграции кассового оборудования с 1С разработчики часто сталкиваются с ситуацией: в коде передается признак формирования электронного чека (ПараметрыЧека.Электронно = Истина), однако фискальный регистратор все равно распечатывает бумажный документ. Разберем по шагам, почему кассовый аппарат игнорирует этот флаг и какими способами можно полностью отключить физическую печать чека на кассах «Штрих-М» и «Атол».
Проанализируем базовые требования формата фискальных документов (ФФД). По закону 54-ФЗ кассовый аппарат не имеет права не печатать чек, если покупатель не предоставил свои контактные данные для отправки чека в электронной форме.
Если в кассовое ядро передается флаг Электронно = Истина, но при этом телефон или адрес электронной почты клиента (Тег 1008) не заполнен, пуст или передан в некорректном формате, прошивка ККТ автоматически отменяет режим подавления печати и выпускает стандартный бумажный чек.
Посмотрим на пример вызова метода БПО:
Результат = ОбъектДрайвера.СформироватьЧек(
ПараметрыПодключения.ИДУстройства,
Кассир,
Электронно,
ДанныеЧека,
НомерЧека,
НомерСмены,
ФискальныйПризнак,
АдресСайтаПроверки
);
Убедимся, что внутри структуры ДанныеЧека (или соответствующих свойств XML-пакета) обязательно передается заполненный телефон или email:
// В параметрах фискализации обязательно заполняем контакт клиента
ПараметрыЧека.EmailПолучателя = "client@example.com";
// или ПараметрыЧека.ТелефонПолучателя = "+79991234567";
В аппаратах производителя «Штрих-М» поведение печатного механизма напрямую регулируется внутренними таблицами ККТ. Даже если внешняя компонента 1С передает флаг электронного чека, аппаратные настройки кассы могут иметь приоритет.
Разберем основные параметры в утилите «Тест драйвера ККТ» («Штрих-М»):
Если работа с кассой осуществляется через низкоуровневый COM-объект драйвера «Штрих-М», перед открытием электронного документа можно программно выставить флаг запрета печати:
ОбъектДрайвера.TableNumber = 17;
ОбъектДрайвера.RowNumber = 1;
ОбъектДрайвера.FieldNumber = 7;
ОбъектДрайвера.ValueOfFieldString = "1"; // Подавление печати для одного чека
ОбъектДрайвера.WriteTable();
В фискальных регистраторах «Атол» режим печати чека может передаваться непосредственно при инициализации документа. При прямом обращении к драйверу ККТ («Атол» DTO) управление осуществляется через параметры открытия чека:
// CheckMode: 0 - с печатью на ленте, 1 - электронный чек без печати
ECR.CheckMode = 1;
ECR.CheckType = 1; // Тип чека (например, приход)
ECR.OpenCheck();
Если контакты покупателя заполнены и таблицы настроены, но чек продолжает печататься, выполним следующие шаги диагностики:
Электронно не транслировался в низкоуровневые команды кассового ядра. Рекомендуется обновить драйвер оборудования в базе 1С до актуального релиза.Таким образом, для гарантированного отключения печати бумажного чека необходимо передать контактные данные покупателя (Тег 1008), проверить настройки Таблицы 17 (для ККТ «Штрих-М») и использовать актуальную версию драйвера оборудования.