При работе с конфигурацией 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С, а в настройках самого аппарата. Рассмотрим ситуацию: данные уходят в ОФД и отображаются в электронном чеке, но на бумаге их нет. Посмотрим, как это исправить через утилиту «Тест драйвера ККТ»:
Посмотрим на структуру 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-м драйвере.
Подведем итог нашему исследованию. Для того чтобы реквизиты покупателя печатались, выполним последовательно следующие шаги:
fptr10.log, чтобы понять, доходят ли данные из 1С до драйвера.ATOLKKT.epf до последней версии или воспользуемся проверенным решением от сообщества.Важный момент: если ИНН покупателя указан неверно (не соответствует контрольному числу или количеству цифр), касса может молча проигнорировать этот тег или выдать ошибку «Неверный формат параметра». Всегда проверяйте корректность заполнения ИНН в карточке контрагента в 1С:УПП перед пробитием чека.
Совместное выполнение этих действий позволит привести чеки вашей организации в полное соответствие с требованиями законодательства.