Почему ККТ продолжает печатать бумажный чек при передаче признака электронного чека в 1С

Программист 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

При переходе на требования 54-ФЗ и интеграции кассового оборудования с 1С разработчики часто сталкиваются с ситуацией: в коде передается признак формирования электронного чека (ПараметрыЧека.Электронно = Истина), однако фискальный регистратор все равно распечатывает бумажный документ. Разберем по шагам, почему кассовый аппарат игнорирует этот флаг и какими способами можно полностью отключить физическую печать чека на кассах «Штрих-М» и «Атол».

1. Проверка обязательного заполнения контактов покупателя (Тег 1008)

Проанализируем базовые требования формата фискальных документов (ФФД). По закону 54-ФЗ кассовый аппарат не имеет права не печатать чек, если покупатель не предоставил свои контактные данные для отправки чека в электронной форме.

Если в кассовое ядро передается флаг Электронно = Истина, но при этом телефон или адрес электронной почты клиента (Тег 1008) не заполнен, пуст или передан в некорректном формате, прошивка ККТ автоматически отменяет режим подавления печати и выпускает стандартный бумажный чек.

Посмотрим на пример вызова метода БПО:


Результат = ОбъектДрайвера.СформироватьЧек(
    ПараметрыПодключения.ИДУстройства, 
    Кассир, 
    Электронно, 
    ДанныеЧека, 
    НомерЧека, 
    НомерСмены, 
    ФискальныйПризнак, 
    АдресСайтаПроверки
);

Убедимся, что внутри структуры ДанныеЧека (или соответствующих свойств XML-пакета) обязательно передается заполненный телефон или email:


// В параметрах фискализации обязательно заполняем контакт клиента
ПараметрыЧека.EmailПолучателя = "client@example.com";
// или ПараметрыЧека.ТелефонПолучателя = "+79991234567";

2. Настройка внутренних таблиц фискального регистратора «Штрих-М»

В аппаратах производителя «Штрих-М» поведение печатного механизма напрямую регулируется внутренними таблицами ККТ. Даже если внешняя компонента 1С передает флаг электронного чека, аппаратные настройки кассы могут иметь приоритет.

Разберем основные параметры в утилите «Тест драйвера ККТ» («Штрих-М»):

  1. Откроем утилиту драйвера и перейдем в раздел «Таблицы».
  2. Найдем Таблицу 17 («Региональные настройки»), Ряд 1, Поле 7 («Не печатать документ»).
  3. Значения данного поля определяют режим печати:
    1. 0 — печать чеков включена всегда (значение по умолчанию);
    2. 1 — отключить печать только для следующего формируемого чека (после закрытия документа значение автоматически сбрасывается кассой в 0);
    3. 2 — постоянное отключение печати фискальных документов (чеки фискализируются в ФН и отправляются в ОФД без вывода на ленту).

Если работа с кассой осуществляется через низкоуровневый COM-объект драйвера «Штрих-М», перед открытием электронного документа можно программно выставить флаг запрета печати:


ОбъектДрайвера.TableNumber = 17;
ОбъектДрайвера.RowNumber = 1;
ОбъектДрайвера.FieldNumber = 7;
ОбъектДрайвера.ValueOfFieldString = "1"; // Подавление печати для одного чека
ОбъектДрайвера.WriteTable();

3. Особенности передачи параметров в драйверах «Атол»

В фискальных регистраторах «Атол» режим печати чека может передаваться непосредственно при инициализации документа. При прямом обращении к драйверу ККТ («Атол» DTO) управление осуществляется через параметры открытия чека:


// CheckMode: 0 - с печатью на ленте, 1 - электронный чек без печати
ECR.CheckMode = 1; 
ECR.CheckType = 1; // Тип чека (например, приход)
ECR.OpenCheck();

4. Диагностика и обновление компонентов

Если контакты покупателя заполнены и таблицы настроены, но чек продолжает печататься, выполним следующие шаги диагностики:

  1. Проверка через штатный «Тест драйвера»: откроем утилиту производителя («Тест драйвера ККТ»), установим признак электронного чека, введем email/телефон и пробьем чек на 1 рубль. Если в тесте драйвера чек не печатается, проблема кроется в интеграционной компоненте 1С или формировании структуры XML-пакета.
  2. Обновление драйвера ККТ в 1С: в старых версиях внешних компонент «Штрих-М: ККТ с передачей данных» под стандарт 1С присутствовали ошибки, из-за которых параметр Электронно не транслировался в низкоуровневые команды кассового ядра. Рекомендуется обновить драйвер оборудования в базе 1С до актуального релиза.
  3. Прошивка кассового аппарата: ранние версии внутреннего ПО (прошивок) фискальных регистраторов физически не поддерживали сохранение документа в фискальный накопитель без обязательного прогона через печатающий механизм. При необходимости следует обновить прошивку ККТ в сервисном центре.

Таким образом, для гарантированного отключения печати бумажного чека необходимо передать контактные данные покупателя (Тег 1008), проверить настройки Таблицы 17 (для ККТ «Штрих-М») и использовать актуальную версию драйвера оборудования.

← На главную