Как отправить электронный фискальный чек по email через БПО в 1С?

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

Рассмотрим актуальную задачу: как при интеграции онлайн-кассы с конфигурацией через Библиотеку подключаемого оборудования (БПО) реализовать отправку чека на электронную почту покупателю. Разберем по шагам, кто именно должен формировать письмо, и какие варианты технической реализации существуют.

Механика работы электронных чеков и требования 54-ФЗ

Согласно закону 54-ФЗ, электронный чек юридически полностью приравнен к бумажному. Однако для этого адрес электронной почты или номер телефона должен быть предоставлен покупателем строго до момента расчета. Выясним, как эти данные передаются в кассу.

В форматах фискальных данных (ФФД), с которыми взаимодействуют касса и БПО, предусмотрено только одно поле для передачи контакта покупателя. Туда передается либо номер мобильного телефона, либо email. Драйвер кассового аппарата и ОФД автоматически определяют тип контакта, например, по наличию символа @.

Вариант 1: Отправка чека силами ОФД (Рекомендуемый способ)

Проанализируем самый надежный и юридически корректный путь. В этом случае печать (фискализацию) инициируете вы из 1С, а саму отправку берет на себя Оператор Фискальных Данных (ОФД).

Как это работает на практике:

  1. В конфигурации 1С (в рабочем месте кассира или документе) вводится email или телефон клиента.
  2. При формировании структуры данных для пробития чека через методы БПО, вы передаете этот контакт в соответствующее поле (тег).
  3. Касса получает данные, пробивает чек и отправляет пакет данных в ОФД.
  4. ОФД самостоятельно формирует письмо с официальной ссылкой на чек (с QR-кодом и ID операции) и отправляет его покупателю.

Преимущества: Отправка email через серверы ОФД в большинстве случаев бесплатна. Это снимает техническую нагрузку с вашей учетной системы, а письма от доверенных серверов ОФД гораздо реже попадают в спам.

Важный нюанс: Если требуется отправить только электронный чек без распечатки бумажного, в настройках элемента кассы в 1С или при передаче параметров в драйвер необходимо установить соответствующий флаг отмены печати (например, Не печатать бумажный чек).

Вариант 2: Отправка средствами самой платформы 1С

Посмотрим на альтернативный вариант, когда программа 1С сама формирует печатную форму и отправляет ее клиенту. В типовых решениях этот механизм обычно реализуется через Библиотеку стандартных подсистем (БСП) с использованием системных учетных записей электронной почты.

Если вы реализуете это в самописной конфигурации без БСП, можно сохранить итоговый документ и отправить его через системный объект ИнтернетПочта. Посмотрим на пример кода для такой отправки:


// Сохраняем печатную форму в Excel
ТабДок.Записать("C:\Чек.xlsx", ТипФайлаТабличногоДокумента.XLSX); 

// Создаем профиль с реальными настройками
Профиль = Новый ИнтернетПочтовыйПрофиль; 
Профиль.АдресСервераSMTP = "smtp.yoursite.ru"; 
Профиль.ПортSMTP = 25; 
Профиль.Пользователь = "user"; 
Профиль.Пароль = "password"; 

// Подключаемся к почтовому серверу
Почта = Новый ИнтернетПочта; 
Почта.Подключиться(Профиль); 

// Создаем сообщение с вложением
Письмо = Новый ИнтернетПочтовоеСообщение; 
// ... заполнение реквизитов письма ...

// Отправляем и отключаемся
ОшибочныеПолучатели = Почта.Послать(Письмо); 
Почта.Отключиться();

Однако проанализируем ограничения этого метода:

  1. Требования закона: Отправлять нужно официальный фискальный документ с QR-кодом и ID операции, который присваивает касса. Сформировать его корректно в 1С можно только после полного цикла пробития и возврата данных от драйвера.
  2. Блокировки почты: Если использовать бесплатные почтовые сервисы (Mail, Yandex) для массовой отправки чеков, провайдер быстро заблокирует ящик, приняв рассылку за спам. Для этого варианта крайне желательно иметь собственный почтовый сервер.
  3. Отсутствие очередей: Прямая отправка писем в момент расчета может сильно тормозить работу кассира. Потребуется реализовывать справочник-очередь и отправлять письма регламентным заданием в фоне.

Подводя итог, настоятельно рекомендуем использовать первый вариант: передавать контакты клиента в драйвер оборудования при вызове методов БПО и делегировать саму доставку фискальных чеков на сторону ОФД.

← На главную