Почему в чеке на онлайн-кассе Атол из 1С:УПП не печатается ИНН и наименование покупателя?

Программист 1С v8.3 (Обычные формы)
← На главную

При работе с конфигурацией 1С:Управление производственным предприятием (УПП) 1.3 и современным торговым оборудованием часто возникает ситуация, когда данные в 1С заполнены верно, XML-пакет формируется корректно, но на бумажном чеке реквизиты покупателя (наименование и ИНН) отсутствуют. Это критично при расчетах между организациями и индивидуальными предпринимателями, так как согласно 54-ФЗ эти данные должны присутствовать в чеке.

В данной статье мы подробно разберем, как заставить связку 1С:УПП — Драйвер АТОЛ 10 — ККТ корректно печатать теги 1227 (наименование покупателя) и 1228 (ИНН покупателя). Проанализируем технические нюансы драйверов, прошивок и программного кода.

Разбор версии интеграционной компоненты и драйвера

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

Особое внимание стоит уделить файлу fptr10.dll. Это интеграционная компонента, которая служит «прослойкой» между 1С и основным драйвером АТОЛ, установленным в системе. Выясним причину, почему в поле версия может стоять пометка "alpha". Это часто указывает на промежуточные релизы, в которых поддержка новых тегов только внедрялась. Для стабильной работы рекомендуется использовать компоненту версии не ниже 10.6.1. Именно начиная с этой версии была окончательно отлажена передача реквизитов покупателя через XML-пакет в методе ProcessCheck.

Также важно помнить о разрядности. 1С:УПП — это приложение, которое чаще всего запускается в 32-битном режиме (x86). Следовательно, в системе должен быть зарегистрирован именно 32-битный драйвер АТОЛ, даже если ваша операционная система 64-битная. Проверим регистрацию библиотеки через командную строку от имени администратора:

regsvr32 "C:\Path\To\Atol\10\bin\fptr10.dll"

Проверка соответствия версии ФФД и прошивки ККТ

Проанализируем аппаратную часть. Если касса работает на старом формате фискальных данных ФФД 1.0, то любые попытки передать теги 1227 и 1228 будут игнорироваться на уровне фискального накопителя и самого аппарата. Эти реквизиты поддерживаются только в ФФД 1.05, 1.1 и 1.2.

Разберем влияние прошивки. Для корректной работы с драйверами 10-й серии на ККТ Атол крайне желательно наличие прошивки на Платформе 5.0. Если вы используете Платформу 2.5, убедитесь, что установлены последние доступные обновления (релизы конца 2019 года и позже). На старых прошивках 2018 года поля покупателя могут не выводиться на печать, даже если драйвер успешно принял их от 1С.

Настройка печати реквизитов в «Тесте драйвера»

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

  1. Запустим «Тест драйвера ККТ» и перейдем в раздел «Свойства».
  2. Нажмем «Параметры ККТ».
  3. Найдем раздел «Печать» или «Реквизиты».
  4. Проверим состояние флага «Печать реквизитов покупателя». Если этот флаг снят, касса будет экономить чековую ленту и игнорировать печать тегов 1227/1228 на бумажном носителе.

Особенности формирования XML в 1С:УПП

Посмотрим на структуру XML, которую 1С отправляет на драйвер. В 1С:УПП 1.3 используется старая логика формирования пакета. Для 10-го драйвера формат должен соответствовать стандарту БПО версии 2.0. Разберем типичную структуру блока покупателя:


<CustomerInfo 
    CustomerName="ООО 'Ромашка'" 
    CustomerINN="7701010101" 
    CustomerEmail="test@test.ru" />

Выясним возможные ошибки в коде. В типовой обработке обслуживания ATOLKKT.epf для Атол 10 часто встречается баг в функции СформироватьXMLДляФискализацииЧека. Обработка может просто «забывать» прочитать данные из структуры ОбъектДрайвера или ПараметрыЧека и не включать их в итоговую строку XML.

Для диагностики рекомендуется включить логирование драйвера АТОЛ (файл fptr10.log). Проанализируем лог: если в командах setParam для тегов 1227 и 1228 передаются пустые значения, значит, проблема в программном коде 1С или в обработке обслуживания.

Доработка кода и использование внешних обработок

Если штатная обработка ATOLKKT.epf не справляется, рассмотрим вариант прямой передачи параметров в драйвер. Это гарантированный способ заставить ККТ печатать нужные данные. В коде 1С перед вызовом метода ProcessCheck можно принудительно установить параметры тегов.

Пример логики для модификации обработки (в режиме интеграции через COM/Native):


// Установка наименования покупателя (Тег 1227)
ОбъектДрайвера.setParam(1227, СокрЛП(НаименованиеОрганизацииПокупателя));
// Установка ИНН покупателя (Тег 1228)
ОбъектДрайвера.setParam(1228, СокрЛП(ИННОрганизацииПокупателя));
// Важно вызвать это до открытия чека или внутри структуры фискализации

Если вы не хотите вносить изменения в код самостоятельно, рекомендуется обратить внимание на модифицированные обработки обслуживания с ресурсов типа Инфостарт. Популярные решения (например, «Менеджер оборудования») часто содержат исправления для 1С:УПП, которые учитывают специфику передачи атрибутов покупателя в 10-м драйвере.

Итоги и контрольный список

Подведем итог нашему исследованию. Для того чтобы реквизиты покупателя печатались, выполним последовательно следующие шаги:

  1. Убедимся, что установлена 32-битная версия драйвера АТОЛ 10.6.1 или выше.
  2. Проверим, что ККТ работает в режиме ФФД 1.05.
  3. Удостоверимся, что версия прошивки ККТ актуальна (желательно Платформа 5.0).
  4. Проверим в настройках ККТ через тест драйвера, что печать реквизитов не заблокирована.
  5. Проанализируем fptr10.log, чтобы понять, доходят ли данные из 1С до драйвера.
  6. При необходимости обновим файл ATOLKKT.epf до последней версии или воспользуемся проверенным решением от сообщества.

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

Совместное выполнение этих действий позволит привести чеки вашей организации в полное соответствие с требованиями законодательства.

← На главную