При работе с торговым оборудованием в устаревших, но все еще популярных конфигурациях, таких как 1С:Управление торговлей 10.3, специалисты часто сталкиваются с проблемой несовместимости новых драйверов. Драйверы АТОЛ версии 10 (DTO 10) значительно отличаются от предыдущих версий (8 и 9) своей архитектурой, кроссплатформенностью и скоростью работы. В этой статье мы подробно разберем, как заставить «старую» конфигурацию работать с актуальным драйвером, рассмотрим методы ручной модификации обработки и выясним, где взять официальные обновления.
Рассмотрим основные причины, по которым переход на ДТО 10 является необходимым. Во-первых, это поддержка актуальных требований законодательства (НДС 20%, работа с маркировкой «Честный Знак», ФФД 1.2). Старые драйверы 8-й серии более не развиваются и не гарантируют корректную передачу новых тегов. Во-вторых, 10-я версия использует Native API и JSON-интерфейс, что исключает многие проблемы с регистрацией COM-объектов в системе и повышает общую стабильность связи с ККТ.
Проанализируем ситуацию: типовая конфигурация УТ 10.3 использует внешние обработки для взаимодействия с оборудованием. Чтобы «подружить» 1С с 10-м драйвером, нам потребуется изменить внутреннее содержимое обработки ATOLkkt.epf. Разберем этот процесс по шагам.
Шаг 1. Подготовка компонентов драйвера
Для начала нам необходимо получить файлы интеграционной компоненты из дистрибутива АТОЛ 10. Обычно они находятся в папке установки драйвера, в подкаталоге 1C. Нам нужен ZIP-архив, содержащий библиотеку (DLL), файл описания info.xml и манифест. Обратите внимание на разрядность: если ваша платформа 1С 32-битная, компонента также должна быть 32-битной.
Шаг 2. Замена макета в обработке
Откроем обработку ATOLkkt.epf в Конфигураторе. Нам нужно найти макет с именем ИнтеграционнаяКомпонента (имя может варьироваться в зависимости от версии обработки, например, ДрайверККТ). Заменим содержимое этого макета на подготовленный нами ZIP-архив от 10-й версии драйвера.
Шаг 3. Изменение программного кода инициализации
Теперь самое важное — нужно изменить код, который создает объект драйвера. В модуле обработки найдем процедуру, отвечающую за подключение компоненты. Проанализируем пример кода, который обычно используется для 9-й версии:
Макет = ПолучитьМакет("ИнтеграционнаяКомпонента");
Адрес = ПоместитьВоВременноеХранилище(Макет);
ПодключитьВнешнююКомпоненту(Адрес, "ИнтеграционнаяКомпонента", ТипВнешнейКомпоненты.Native);
Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V9");
Выясним причину, по которой 10-я версия не заводится автоматически: у нее другой идентификатор объекта. Нам нужно изменить строку инициализации. Чтобы узнать точное имя объекта, заглянем внутрь файла info.xml из нашего архива. Как правило, для 10-й версии строка будет выглядеть следующим образом:
// Для 10-й версии АТОЛ
Драйвер = Новый("AddIn.ИнтеграционнаяКомпонента.ATOL_KKT_1C83_V10");
После внесения изменений сохраним обработку и проверим ее в режиме «1С:Предприятие». Теперь система должна корректно инициализировать объект драйвера и увидеть версию 10.х.
Если вы не хотите заниматься «программированием на коленке», существует более цивилизованный путь. Фирма 1С выпустила обновленные версии обработок обслуживания торгового оборудования, которые штатно поддерживают драйвер АТОЛ 10. Рассмотрим, как их применить.
TradeWareEpf).ATOLkkt.epf версии 2.0 или выше.В новых релизах УТ 10.3 (начиная с 10.3.50 и выше) эта обработка уже может быть встроена или идти в комплекте поставки. Она корректно работает через XML-пакеты, что является стандартом для современной интеграции ККТ.
Рассмотрим специфику работы, которую важно учитывать при переходе на 10-й драйвер в среде 1C v8.2/8.3 с обычными формами:
Механизм обмена данными: В УТ 10.3 взаимодействие часто строится через общий модуль ПодключаемоеОборудованиеУниверсальныйДрайверКлиент. Этот модуль формирует XML-структуру чека, которую драйвер затем интерпретирует. При использовании 10-й версии крайне важно, чтобы версия обработки соответствовала версии драйвера, иначе возможны ошибки формата XML («Поле не найдено» или «Некорректный тег»).
Служба EoU и EoT: В отличие от 8-й версии, где служба EthernetOverUSB (EoU) настраивалась отдельно, в 10-й версии она интегрирована более плотно. Однако рекомендуется обратить внимание на режим EoT (EthernetOverTransport). В этом режиме передача данных в ОФД идет по тому же каналу, что и команды от 1С. Это избавляет от проблем с занятыми портами и конфликтами служб.
Таймауты и ожидание: При работе с маркированными товарами время фискализации чека увеличивается, так как ККТ должна дождаться ответа от системы «Честный Знак». Проанализируем настройки драйвера: в форме настройки оборудования в 1С обязательно увеличьте Таймаут до 10 000–15 000 мс. Это предотвратит ошибки обрыва связи при длительной обработке чека.
Разберем ситуацию, когда даже после замены компоненты 1С выдает ошибку «Объект не найден». Проверьте следующие моменты:
AtolDto.dll и др.).ПодключитьВнешнююКомпоненту может работать нестабильно с новыми библиотеками. Рекомендуется обновление платформы до актуальных сборок 8.3 в режиме совместимости.Таким образом, мы видим, что переход на АТОЛ 10 в 1С:УТ 10.3 — задача вполне решаемая как программными методами, так и путем использования официальных обновлений. Второй вариант является предпочтительным, так как обеспечивает долгосрочную поддержку новых требований законодательства.