Как передать телефон или e-mail покупателя в кассу Пирит-1Ф из 1С 7.7 для отправки чека через ОФД?

Программист 1С v7.7 Торговля и дистрибуция
← На главную

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

Разберем подробно принципы взаимодействия кассы с ОФД, правильную структуру параметров и способы реализации передачи реквизитов покупателя из 1С 7.7.

Принцип отправки электронного чека

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

  1. 1С:Предприятие 7.7 запрашивает у кассира контактные данные (телефон или e-mail) и передает их в драйвер ККТ при формировании чека.
  2. ККТ «Пирит-1Ф» записывает полученные контакты в фискальный накопитель в виде Тега 1008 («телефон или электронный адрес покупателя») и отправляет сформированный фискальный документ оператору фискальных данных (ОФД).
  3. ОФД принимает фискальный пакет и выполняет непосредственную отправку письма на e-mail или SMS-сообщения на телефон покупателя.

Сам фискальный регистратор не отправляет SMS или электронные письма самостоятельно — он лишь передает фискализированный Тег 1008 в ОФД.

Причины сложностей в 1С 7.7

Выясним причину, почему в типовых или старых обработках обслуживания (например, fr_pirit.ert) отправка контактов не работает «из коробки»:

  1. Устаревший интерфейс обработки: старые версии внешних обработок обслуживания ККТ создавались до введения формата фискальных данных (ФФД) и не содержат полей ввода или переменных для передачи контактов клиента.
  2. Устаревшие внешние компоненты: библиотеки ранних версий не поддерживали протоколы ФФД 1.05/1.2 и не умели транслировать Тег 1008 в низкоуровневые команды фискальника.

Способ 1. Использование драйвера по стандарту БПО («1С:ККТ с передачей данных»)

Современные версии драйверов для фискальных регистраторов «Пирит» работают по стандарту подключаемого оборудования 1С и принимают чек в виде XML-пакета данных. Проанализируем, как в 1С 7.7 передаются эти реквизиты.

В XML-структуре чека внутри узла параметров Parameters указываются специальные атрибуты:

  1. CustomerEmail — адрес электронной почты клиента.
  2. CustomerPhone — номер мобильного телефона клиента.

Посмотрим на пример формирования строки XML-пакета в коде 1С 7.7:


// Формирование фрагмента XML-пакета для передачи в драйвер
СтрXML = "<CheckPackage>";
СтрXML = СтрXML + "<Parameters ";
СтрXML = СтрXML + "PaymentType=""1"" ";
СтрXML = СтрXML + "TaxVariant=""0"" ";

// Добавление контактов покупателя
Если ПустаяСтрока(ЭлПочтаКлиента) = 0 Тогда
    СтрXML = СтрXML + "CustomerEmail=""" + СокрЛП(ЭлПочтаКлиента) + """ ";
КонецЕсли;

Если ПустаяСтрока(ТелефонКлиента) = 0 Тогда
    СтрXML = СтрXML + "CustomerPhone=""" + СокрЛП(ТелефонКлиента) + """ ";
КонецЕсли;

СтрXML = СтрXML + "/>";
// Далее формируются позиции чека и итоги...

При вызове метода ProcessCheck (или СформироватьЧек) драйвер автоматически преобразует атрибуты CustomerEmail и CustomerPhone в фискальный Тег 1008.

Способ 2. Прямая работа через библиотеку PiritLib / ComProxy

Если используется прямое низкоуровневое подключение через библиотеку производителя PiritLib и службу-маршрутизатор ComProxy, передача выполняется на этапе открытия чека либо специальной командой записи реквизита до закрытия чека.

Для корректной работы важно убедиться, что:

  1. Прошивка ККТ «Пирит-1Ф» обновлена до актуальной версии с поддержкой ФФД 1.05 или 1.2.
  2. Утилита ComProxy и внешняя компонента обновлены до релизов, поддерживающих онлайн-передачу тегов.

Требования к формату данных (Тег 1008)

Рассмотрим правила форматирования контактов, нарушение которых приведет к ошибке пробития чека на ККТ:

  1. Номер телефона: должен передаваться в числовом формате без пробелов, скобок и дефисов. Рекомендуемый формат — начиная с кода страны (например, +79991234567 или 79991234567).
  2. E-mail: должен содержать валидный адрес электронной почты (например, client@mail.ru). Присутствие пробелов или недопустимых символов вызовет отказ драйвера или ОФД.

Настройки на стороне ОФД

Чтобы отправка успешно доходила до покупателя, необходимо проверить настройки в личном кабинете ОФД:

  1. Отправка по E-mail: как правило, предоставляется операторами бесплатно. В параметрах регистрации кассы должен быть заполнен Тег 1117 («Адрес электронной почты отправителя чека»).
  2. Отправка по SMS: подавляющее большинство операторов фискальных данных тарифицируют SMS-сообщения отдельно. Для доставки чеков на телефон необходимо приобрести пакет SMS в личном кабинете используемого ОФД.

Альтернативный вариант: отправка ссылки на чек силами 1С 7.7

Если нет возможности доработать кассовую обработку обслуживания или приобрести платный пакет SMS у ОФД, можно реализовать отправку средствами самой 1С 7.7:

  1. После успешного пробития чека обработка считывает фискальные реквизиты: номер ФД, ФПД, дату и сумму.
  2. По этим данным формируется ссылка на электронный чек на сайте ОФД.
  3. Ссылка отправляется покупателю на e-mail через штатную работу с почтой (например, через объект CDO.Message) или через сторонний SMS/мессенджер-шлюз по HTTP-запросу.
← На главную