Как перейти на ДТО 10 АТОЛ в конфигурациях 1С на обычных формах и настроить печать чеков?

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

Переход на драйверы торгового оборудования АТОЛ 10-й версии (ДТО 10) стал насущной необходимостью для многих организаций, использующих старые конфигурации 1С на обычных формах, такие как Управление производственным предприятием (УПП 1.3) или Управление торговлей (УТ 10.3). Прекращение поддержки 9-й и 8-й версий драйверов со стороны производителя, а также постоянные изменения в налоговом законодательстве и правилах маркировки делают работу на устаревшем ПО невозможной.

В этой статье мы подробно разберем, как самостоятельно перевести старую конфигурацию 1С на работу с ДТО 10, заменить программный вызов компоненты, настроить передачу обязательных реквизитов (таких как ИНН кассира) и решить частые проблемы, возникающие при печати чеков.

Зачем переходить на ДТО 10?

Прежде чем приступать к технической части, проанализируем причины перехода. Драйверы версий 8.х и 9.х полностью сняты с поддержки. Это означает, что любые изменения в законодательстве (например, поддержка новых форматов фискальных данных ФФД 1.2, маркировка товаров «Честный ЗНАК», новые типы безналичных оплат) не будут в них реализованы. Единственным стабильным и поддерживаемым решением является ДТО 10.

При этом типовые конфигурации на обычных формах часто не содержат встроенных механизмов для работы с 10-й версией драйвера «из коробки». Мы рассмотрим, как адаптировать имеющуюся обработку обслуживания торгового оборудования под новые требования.

Шаг 1. Замена программного идентификатора драйвера в коде

Для начала нам необходимо изменить программный вызов интеграционной компоненты. В коде обработки обслуживания, которая отвечает за взаимодействие с ККТ АТОЛ, найдем место инициализации драйвера.

Выясним, какой программный идентификатор использовался ранее. В обработках для 9-й версии драйвера вызов выглядел следующим образом:

Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V9");

Для того чтобы система начала использовать библиотеки 10-й версии, нам нужно изменить этот вызов. Пропишем новый программный идентификатор компоненты:

Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V10");

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

Драйвер = Новый("AddIn.ATOL_KKT_1C83_V10");

Выбор конкретного варианта зависит от того, как именно компонента упакована в макет вашей обработки обслуживания.

Шаг 2. Обновление макета внешней компоненты

Простого изменения строки подключения в коде недостаточно. Нам необходимо физически заменить файлы библиотеки внутри макета обработки обслуживания:

  1. Откроем обработку обслуживания (обычно это ATOLKKT54FZ.epf или аналогичная внешняя обработка) в конфигураторе.
  2. Найдем макет, содержащий драйвер (например, макет с типом «Двоичные данные», содержащий ZIP-архив с компонентой).
  3. Выгрузим этот ZIP-архив на диск.
  4. Распакуем архив. Мы увидим файлы динамических библиотек (.dll) и файл манифеста (.xml).
  5. Скачаем актуальный дистрибутив ДТО 10 с официального сайта АТОЛ и найдем в нем новые версии интеграционных компонент для 1С (они поставляются в составе интеграционных пакетов).
  6. Заменим старые файлы .dll новыми версиями библиотек ДТО 10 в распакованной папке, при необходимости скорректируем манифест info.xml, указав актуальную версию компоненты.
  7. Запакуем файлы обратно в ZIP-архив и загрузим его обратно в макет конфигурации или внешней обработки обслуживания.

Шаг 3. Передача ИНН кассира в фискальный документ

Согласно требованиям ФФД 1.05 и выше, реквизиты «Кассир» (тег 1021) и «ИНН кассира» (тег 1203) должны передаваться при формировании фискального чека. В старых типовых конфигурациях на обычных формах этот функционал часто отсутствует или реализован некорректно.

Давайте разберем по шагам, как добавить передачу ИНН кассира. Для этого перейдем в функцию, которая формирует XML-пакет для фискализации чека (обычно это функция ПолучитьXMLПакетДляФискализацияЧека в модуле обработки или общего модуля торгового оборудования).

Добавим в структуру формирования XML-документа проверку и запись атрибута CashierVATIN:


Если ВерсияФФД > 0 Тогда // Атрибуты, соответствующие ФФД 1.05 и выше
    Если Не ПустаяСтрока(ОбщиеПараметры.КассирИНН) Тогда 
        ЗаписьXML.ЗаписатьАтрибут("CashierVATIN", XMLСтрока(ОбщиеПараметры.КассирИНН));
    КонецЕсли;
КонецЕсли;

Для того чтобы этот код успешно отработал, предварительно необходимо заполнить свойство КассирИНН в структуре ОбщиеПараметры. В 1С данные об ИНН физического лица обычно хранятся в карточке сотрудника (справочник ФизическиеЛица). Настроим получение ИНН текущего пользователя при открытии кассовой смены или формировании чека и передадим его в структуру параметров.

Шаг 4. Решение проблемы со «слетевшим» шаблоном чека после прошивки ККТ

Часто при обновлении прошивки кассового аппарата под новые требования законодательства пользователи сталкиваются с неприятной проблемой: чек начинает печататься некорректно. Например, может отсутствовать обязательный QR-код, подвал чека выводится вверху, начинают печататься лишние технические секции и т.д.

Проанализируем ситуацию: это происходит из-за сброса или повреждения шаблона чека в памяти самой кассы в процессе прошивки устройства.

Для решения этой проблемы выполним следующие действия:

  1. Запустим утилиту «Редактор шаблонов чеков АТОЛ» (ее можно скачать из центра загрузок АТОЛ).
  2. Подключимся к кассовому аппарату, на котором печать чеков выполняется корректно (с тем же разрешением печати и моделью).
  3. Выгрузим рабочий шаблон чека из памяти этой ККТ и сохраним его на жесткий диск в виде файла.
  4. Подключимся через редактор шаблонов к проблемной кассе.
  5. Загрузим сохраненный ранее рабочий файл шаблона в память ККТ.
  6. При необходимости выполним инициализацию таблиц ККТ через «Тест драйвера ККТ», предварительно сохранив настройки связи и таблицы кодов товаров.

Шаг 5. Исправление ошибок парсинга и работы со ставкой НДС 20%

Еще одна распространенная проблема при переходе на новые ставки НДС на старых версиях драйверов — это появление ошибки вида:

Ошибка парсинга запроса (некорректное значение поля "items[0].tax.type" ())

Выясним причину этой ошибки. Она возникает из-за несовместимости версии драйвера, прошивки кассы и передаваемых из 1С параметров налогообложения. Если касса прошита под НДС 20%, но драйвер используется устаревший (например, ранние версии ДТО 10 до 10.4.2), он не может корректно сопоставить ставку налога и передать ее в ККТ.

Для устранения этой ошибки выполним комплекс мер:

Альтернатива: Использование Веб-сервера или RPC-сервера АТОЛ

В начале обсуждения многие разработчики интересовались поддержкой Веб-сервера АТОЛ непосредственно в типовых конфигурациях 1С. Фирма 1С не планирует внедрять прямую поддержку HTTP-сервисов Веб-сервера АТОЛ в БПО. Однако, если вам необходимо организовать печать чеков с нескольких рабочих мест (например, в терминальном режиме RDP), существует отличная альтернатива, полностью поддерживаемая типовыми конфигурациями.

Мы рекомендуем использовать Сервер удаленного подключения ККТ (RPC-сервер), входящий в поставку ДТО 10:

  1. На компьютере, к которому физически подключена касса по USB, запускается служба удаленного подключения (работает по TCP/IP, порт по умолчанию 19524).
  2. На удаленных компьютерах или в сессиях RDP в настройках торгового оборудования 1С выбирается стандартный драйвер «АТОЛ:ККТ с передачей данных 10.х».
  3. В параметрах подключения вместо локального порта указывается IP-адрес компьютера-сервера и порт службы.

Такой подход обеспечивает высокую скорость печати, стабильность соединения и полную поддержку со стороны типовой Библиотеки подключаемого оборудования 1С без необходимости доработки кода под HTTP-запросы.

← На главную