Как не печатать бумажный чек на ККМ при отправке электронной версии через 1С?

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

В современной розничной торговле вопрос экономии кассовой ленты и перехода на электронные чеки стал особенно актуальным. Однако при реализации этой функции в «1С:Розница» (особенно в старых версиях, таких как 2.2) специалисты часто сталкиваются с ситуацией, когда чек отправляется покупателю по SMS или e-mail, но при этом аппарат всё равно распечатывает бумажную копию. Рассмотрим подробно, как решить эту проблему, проанализируем технические настройки драйверов и разберем юридические тонкости процесса.

Причина №1: Обновление драйвера ККТ

Проанализируем ситуацию, описанную в практике внедрения. Часто программный код расширения 1С написан верно, но само оборудование (ККТ) продолжает работать по старым алгоритмам. Выясним причину: старые версии драйверов могут неверно интерпретировать флаг отказа от печати, передаваемый из системы 1С.

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

Причина №2: Настройка внутренних таблиц «Штрих-М»

Разберем по шагам настройку самого кассового аппарата через утилиту производителя. В фискальных регистраторах «Штрих-М» логика работы заложена в специальных таблицах. Если программный метод «не печатать» игнорируется, нам необходимо проверить внутренние параметры устройства:

  1. Откроем «Тест драйвера ККТ».
  2. Перейдем в раздел «Настройка свойств» — «Таблицы».
  3. Найдем Таблицу №1 «Тип текста / Настройка печати» (название может варьироваться в зависимости от прошивки).
  4. Обратим внимание на Ряд 1, Поле 21 «Автоматическая печать». Если там установлено значение «1», аппарат будет пытаться печатать чек в любом случае. Для управления процессом из 1С часто требуется выставить значение «0», что позволит программе самой решать, давать ли команду на печать.

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

Причина №3: Программная передача признака электронного чека в 1С

Посмотрим на пример того, как данные передаются из 1С в драйвер. Чтобы ККТ поняла, что печатать чек не нужно, в XML-пакет, который формирует 1С (Библиотека подключаемого оборудования — БПО), должен быть включен соответствующий атрибут. Разберем, как это реализовано на уровне кода.

Для того чтобы чек стал электронным, необходимо соблюдение двух условий: наличие контактных данных (Тег 1008) и установка флага Electronically в значение Истина. Рассмотрим фрагмент кода, который обычно используется в расширениях для модификации структуры чека:


// Пример модификации параметров чека перед отправкой на ККТ
ПараметрыЧека = Новый Структура;
ПараметрыЧека.Вставить("Электронно", Истина);
ПараметрыЧека.Вставить("ДанныеПокупателя", "user@example.com"); // Тег 1008

// При формировании XML для драйвера БПО этот флаг преобразуется в атрибут 
// Electronically="true" внутри узла FiscalReceipt

Если в вашем расширении флаг Электронно (или Electronically) не передается или передается как Ложь, драйвер расценит это как обычную продажу с дополнительным информированием, и печать бумажного носителя будет выполнена штатно.

Юридический аспект и требования 54-ФЗ

Проанализируем ситуацию с точки зрения закона. Многие пользователи ошибочно полагают, что можно просто выключить печать чеков для всех покупателей в целях экономии. Однако это является прямым нарушением ст. 1.2 Федерального закона №54-ФЗ.

Основные правила:

  1. Выдача бумажного чека обязательна по умолчанию.
  2. Продавец имеет право не печатать чек только в том случае, если покупатель предоставил адрес электронной почты или номер телефона ДО момента расчета.
  3. Если расчет произведен, а согласие на электронный чек не получено, продавец обязан выдать бумажный документ.

Выясним причину, по которой крупные ритейлеры (например, «Пятерочка» или «Лента») массово перешли на электронные чеки. Это стало возможным благодаря обновлению программ лояльности: при регистрации в приложении пользователь заранее дает согласие на получение чеков в электронном виде. В этом случае 1С автоматически получает признак «только электронно» из карточки клиента и передает его на ККТ.

Рекомендации по реализации в «1С:Розница»

Если вы используете старую версию программы, где нет штатной галочки «Отправлять электронный чек», рекомендуем реализовать в расширении следующий алгоритм:

  1. Добавить в форму РМК (Рабочего места кассира) поле для ввода телефона или почты или кнопку переключения режима.
  2. Перед вызовом метода НапечататьФискальныйЧек проверять заполненность этих данных.
  3. При заполнении контактов программно устанавливать свойство ЭлектронныйЧек = Истина в объекте драйвера.
  4. Обязательно выводить на экран кассира подтверждение: «Чек будет отправлен на e-mail, бумажный чек напечатан не будет».

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

Итог: Если в одном из магазинов чек продолжает печататься, последовательно проверьте версию драйвера (обновите до 4.14.0.772), версию прошивки ККТ и корректность передачи флага Electronically в XML-пакете. Также убедитесь, что в таблицах Штрих-М не включена принудительная автоматическая печать копий.

← На главную