Переход на драйверы торгового оборудования АТОЛ 10-й версии (ДТО 10) стал насущной необходимостью для многих организаций, использующих старые конфигурации 1С на обычных формах, такие как Управление производственным предприятием (УПП 1.3) или Управление торговлей (УТ 10.3). Прекращение поддержки 9-й и 8-й версий драйверов со стороны производителя, а также постоянные изменения в налоговом законодательстве и правилах маркировки делают работу на устаревшем ПО невозможной.
В этой статье мы подробно разберем, как самостоятельно перевести старую конфигурацию 1С на работу с ДТО 10, заменить программный вызов компоненты, настроить передачу обязательных реквизитов (таких как ИНН кассира) и решить частые проблемы, возникающие при печати чеков.
Прежде чем приступать к технической части, проанализируем причины перехода. Драйверы версий 8.х и 9.х полностью сняты с поддержки. Это означает, что любые изменения в законодательстве (например, поддержка новых форматов фискальных данных ФФД 1.2, маркировка товаров «Честный ЗНАК», новые типы безналичных оплат) не будут в них реализованы. Единственным стабильным и поддерживаемым решением является ДТО 10.
При этом типовые конфигурации на обычных формах часто не содержат встроенных механизмов для работы с 10-й версией драйвера «из коробки». Мы рассмотрим, как адаптировать имеющуюся обработку обслуживания торгового оборудования под новые требования.
Для начала нам необходимо изменить программный вызов интеграционной компоненты. В коде обработки обслуживания, которая отвечает за взаимодействие с ККТ АТОЛ, найдем место инициализации драйвера.
Выясним, какой программный идентификатор использовался ранее. В обработках для 9-й версии драйвера вызов выглядел следующим образом:
Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V9");
Для того чтобы система начала использовать библиотеки 10-й версии, нам нужно изменить этот вызов. Пропишем новый программный идентификатор компоненты:
Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V10");
В некоторых случаях, в зависимости от используемой версии БПО (Библиотеки подключаемого оборудования) и способа регистрации внешней компоненты в системе, вызов может быть сокращенным:
Драйвер = Новый("AddIn.ATOL_KKT_1C83_V10");
Выбор конкретного варианта зависит от того, как именно компонента упакована в макет вашей обработки обслуживания.
Простого изменения строки подключения в коде недостаточно. Нам необходимо физически заменить файлы библиотеки внутри макета обработки обслуживания:
ATOLKKT54FZ.epf или аналогичная внешняя обработка) в конфигураторе..dll) и файл манифеста (.xml)..dll новыми версиями библиотек ДТО 10 в распакованной папке, при необходимости скорректируем манифест info.xml, указав актуальную версию компоненты.Согласно требованиям ФФД 1.05 и выше, реквизиты «Кассир» (тег 1021) и «ИНН кассира» (тег 1203) должны передаваться при формировании фискального чека. В старых типовых конфигурациях на обычных формах этот функционал часто отсутствует или реализован некорректно.
Давайте разберем по шагам, как добавить передачу ИНН кассира. Для этого перейдем в функцию, которая формирует XML-пакет для фискализации чека (обычно это функция ПолучитьXMLПакетДляФискализацияЧека в модуле обработки или общего модуля торгового оборудования).
Добавим в структуру формирования XML-документа проверку и запись атрибута CashierVATIN:
Если ВерсияФФД > 0 Тогда // Атрибуты, соответствующие ФФД 1.05 и выше
Если Не ПустаяСтрока(ОбщиеПараметры.КассирИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("CashierVATIN", XMLСтрока(ОбщиеПараметры.КассирИНН));
КонецЕсли;
КонецЕсли;
Для того чтобы этот код успешно отработал, предварительно необходимо заполнить свойство КассирИНН в структуре ОбщиеПараметры. В 1С данные об ИНН физического лица обычно хранятся в карточке сотрудника (справочник ФизическиеЛица). Настроим получение ИНН текущего пользователя при открытии кассовой смены или формировании чека и передадим его в структуру параметров.
Часто при обновлении прошивки кассового аппарата под новые требования законодательства пользователи сталкиваются с неприятной проблемой: чек начинает печататься некорректно. Например, может отсутствовать обязательный QR-код, подвал чека выводится вверху, начинают печататься лишние технические секции и т.д.
Проанализируем ситуацию: это происходит из-за сброса или повреждения шаблона чека в памяти самой кассы в процессе прошивки устройства.
Для решения этой проблемы выполним следующие действия:
Еще одна распространенная проблема при переходе на новые ставки НДС на старых версиях драйверов — это появление ошибки вида:
Ошибка парсинга запроса (некорректное значение поля "items[0].tax.type" ())
Выясним причину этой ошибки. Она возникает из-за несовместимости версии драйвера, прошивки кассы и передаваемых из 1С параметров налогообложения. Если касса прошита под НДС 20%, но драйвер используется устаревший (например, ранние версии ДТО 10 до 10.4.2), он не может корректно сопоставить ставку налога и передать ее в ККТ.
Для устранения этой ошибки выполним комплекс мер:
В начале обсуждения многие разработчики интересовались поддержкой Веб-сервера АТОЛ непосредственно в типовых конфигурациях 1С. Фирма 1С не планирует внедрять прямую поддержку HTTP-сервисов Веб-сервера АТОЛ в БПО. Однако, если вам необходимо организовать печать чеков с нескольких рабочих мест (например, в терминальном режиме RDP), существует отличная альтернатива, полностью поддерживаемая типовыми конфигурациями.
Мы рекомендуем использовать Сервер удаленного подключения ККТ (RPC-сервер), входящий в поставку ДТО 10:
Такой подход обеспечивает высокую скорость печати, стабильность соединения и полную поддержку со стороны типовой Библиотеки подключаемого оборудования 1С без необходимости доработки кода под HTTP-запросы.