Почему в 1С:ERP номер телефона покупателя не попадает в печатную форму чека ККМ и как это исправить

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

При оформлении кассового чека из документа Приходный кассовый ордер пользователи нередко сталкиваются с ситуацией: в форме предпросмотра электронного чека заполняется номер телефона или адрес электронной почты покупателя, однако в окне Представление (а также на самой бумажной ленте) контактные данные отсутствуют. При этом если заглянуть в регистр сведений или регистр накопления фискальных операций на вкладку XML, реквизиты CustomerPhone и CustomerEmail присутствуют и корректно передаются на ККТ.

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

Причины разделения электронного и печатного чека

Проанализируем архитектуру фискализации в типовых решениях на базе Библиотеки подключаемого оборудования (БПО):

  1. Назначение реквизита (тег 1008 по ФФД): Номер телефона или электронный адрес покупателя в форматах фискальных документов предназначен исключительно для отправки электронного чека покупателю через оператора фискальных данных (ОФД). Согласно требованиям 54-ФЗ и действующим форматам фискальных документов (ФФД 1.05, 1.1, 1.2), тег 1008 обязателен только при передаче данных в электронной форме, но не входит в состав обязательных реквизитов бумажного фискального документа.
  2. Идентификация покупателя-ИП: При расчетах с организациями и индивидуальными предпринимателями законодательство требует выводить в чеке наименование покупателя (тег 1227) и его ИНН (тег 1228). Контактный телефон в состав реквизитов идентификации покупателя не входит.
  3. Окно «Представление»: Это не точный дубликат отправленного XML-пакета, а сформированный средствами 1С табличный документ. Он визуализирует только те реквизиты, которые строго требуются законом для бумажного носителя.
  4. Поведение кассового аппарата: Физическую печать на термоленту выполняет прошивка фискального регистратора (ФР). Даже если в драйвер устройства передается заполненный XML с тегом 1008, внутренние алгоритмы большинства прошивок (АТОЛ, ШТРИХ-М) отсекают эти данные в целях экономии ленты и соблюдения стандартов.

Правовые нюансы и закон о персональных данных (152-ФЗ)

Прежде чем приступать к доработке, важно проанализировать правовые последствия. Номер телефона и личный e-mail физического лица (в том числе зарегистрированного как ИП) относятся к персональным данным. Бумажный чек после покупки нередко остается на кассовом узле или выбрасывается в общедоступных местах. Печать открытых контактных данных на бумажном носителе создает прямые риски нарушения Федерального закона № 152-ФЗ «О персональных данных», так как чек может попасть в руки третьих лиц без согласия субъекта. Именно поэтому разработчики типовых решений намеренно исключили вывод тега 1008 на печать.

Способ 1. Вывод контактов в окно «Представление» через расширение

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

Рассмотрим, где формируются данные для макета:

  1. Формирование структуры параметров для фискализации выполняется экспортной функцией ОборудованиеЧекопечатающиеУстройстваКлиентСервер.ПараметрыОперацииФискализацииЧека(). В этой структуре присутствуют поля покупателя.
  2. Построение табличного документа чека выполняется в общем модуле ШаблоныФискальныхДокументовСлужебный. Точкой входа служит процедура ШаблонКассовыйЧек(), внутри которой вызывается процедура формирования шапки — ШаблонКассовыйЧекШапка().

Подключим расширение и перехватим процедуру формирования шапки с помощью директивы &После:


&После("ШаблонКассовыйЧекШапка")
Процедура Расш1_ШаблонКассовыйЧекШапка(ТабличныйДокумент, ПараметрыЧека, ДанныеШаблона)
    
    // Проверяем наличие контактных данных покупателя
    НомерТелефона = "";
    Если ПараметрыЧека.Свойство("CustomerPhone", НомерТелефона) И Не ПустаяСтрока(НомерТелефона) Тогда
        Область = ТабличныйДокумент.ПолучитьОбласть("Строка|Колонка");
        Область.Параметры.Текст = "Тел. покупателя: " + НомерТелефона;
        ТабличныйДокумент.Вывести(Область);
    КонецЕсли;
    
    ЭлектроннаяПочта = "";
    Если ПараметрыЧека.Свойство("CustomerEmail", ЭлектроннаяПочта) И Не ПустаяСтрока(ЭлектроннаяПочта) Тогда
        Область = ТабличныйДокумент.ПолучитьОбласть("Строка|Колонка");
        Область.Параметры.Текст = "E-mail покупателя: " + ЭлектроннаяПочта;
        ТабличныйДокумент.Вывести(Область);
    КонецЕсли;
    
КонецПроцедуры

Способ 2. Вывод контактных данных на физическую ленту ККТ

Так как прошивка ККТ игнорирует тег 1008 при физической печати, стандартной передачи параметра CustomerPhone в драйвер недостаточно. Чтобы текст гарантированно напечатался на бумаге, его необходимо передать в кассу в виде нефискальной текстовой строки.

Разберем алгоритм решения:

  1. В модуле подготовки фискального чека к отправке в ККТ перехватываем массив текстовых строк фискального пакета.
  2. Добавляем нефискальную текстовую строку (параметр TextString) в область подвала или клише чека. Прошивка ККТ распечатает такой блок как обычный произвольный текст, не нарушая фискальную целостность документа.
  3. Если кассовое оборудование поддерживает редактирование шаблонов печати на уровне прошивки (например, через драйвер АТОЛ или специализированный редактор шаблонов), можно настроить вывод соответствующих полей напрямую в утилите ККТ без модификации конфигурации 1С.

Альтернативные решения без модификации системы

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

  1. Личный кабинет ОФД: При корректной передаче XML чек сохраняется у оператора фискальных данных со всеми электронными реквизитами. Оттуда его можно скачать в формате PDF или отправить на повторную электронную доставку.
  2. Первичные документы для ИП: Так как расчет производится с индивидуальным предпринимателем, закрывающими документами для целей налогового учета являются накладная, акт или УПД, где контактные данные покупателя указываются в полном объеме штатными средствами без изменения логики кассового модуля.
← На главную