Как настроить отправку электронного чека на ККТ Атол без печати бумажного документа?

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

Часто в практике автоматизации торговли возникает задача по экономии кассовой ленты или переходу на полностью электронный документооборот с покупателями. Разберемся, как программно реализовать отправку чека через ОФД без физической печати на ККТ Атол, используя ДТО (Драйвер торгового оборудования).

Юридические аспекты и требования законодательства

Прежде чем приступать к программной реализации, важно понимать правовые риски. Согласно 54-ФЗ, продавец обязан выдать чек. Бумажный чек является стандартным способом исполнения этой обязанности. Переход на электронный чек допустим только при соблюдении следующих условий:

  1. Наличие технической возможности у ККТ и программного обеспечения.
  2. Согласие покупателя на получение чека в электронном виде (на e-mail или абонентский номер).
  3. Передача контактных данных покупателя в фискальный накопитель до момента совершения расчета.

Важно помнить, что если покупатель не предоставил свои данные или потребовал бумажный чек, обязанность по печати сохраняется. Дефицит ленты не является законным основанием для отказа клиенту в выдаче чека.

Техническая реализация через драйвер Атол

Для управления режимом печати в ДТО Атол используются специальные параметры, передаваемые при формировании чека. Рассмотрим шаги, необходимые для перевода кассы в «электронный» режим.

Для корректной работы необходимо передать контактные данные покупателя в объект драйвера. Если этого не сделать, касса, скорее всего, принудительно напечатает бумажный чек, так как данные для отправки (атрибут 1008) не будут зафиксированы.

Пример программного кода для 1С

Для управления режимом печати мы используем параметр LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY. Рассмотрим структуру кода для формирования чека:


// Запись контакта покупателя для отправки электронного чека (атрибут 1008)
fptr.setParam(1008, СокрЛП(МайлТелефон));

// Режим формирования (печатать, НЕ печатать)
// Если передаем TRUE, ККТ не будет печатать бумажный чек
Если МайлТелефон <> "" Тогда 
    fptr.setParam(fptr.LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY, TRUE);
Иначе
    fptr.setParam(fptr.LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY, FALSE);
КонецЕсли;

В данном примере мы используем метод setParam с передачей атрибута 1008, в который записывается e-mail или телефон клиента. После этого мы устанавливаем флаг LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY в значение TRUE. Это дает команду кассовому аппарату пропустить этап печати на бумажной ленте, но при этом сформировать фискальный документ и отправить его в ОФД для последующей рассылки покупателю.

Нюансы работы с контактными данными

Обратите внимание, что выбор канала связи влияет на стоимость услуги:

Если вы не передадите контактные данные в параметре 1008, кассовый аппарат будет работать в стандартном режиме и продолжит расходовать бумагу, так как отсутствие контактов делает невозможной электронную отправку документа. Всегда проверяйте, что данные корректно заполнены перед вызовом метода openReceipt или аналогичных функций формирования документа.

Таким образом, для реализации задуманного вам необходимо: получить явное согласие от покупателя, запросить его контактные данные, передать их в драйвер через атрибут 1008 и выставить флаг LIBFPTR_PARAM_RECEIPT_ELECTRONICALLY. Это позволит эффективно экономить расходные материалы, соблюдая требования законодательства.

← На главную