При работе с торговым оборудованием в старых конфигурациях, таких как 1С:Управление торговлей 10.3, специалисты часто сталкиваются с парадоксальной ситуацией. В операционной системе установлена актуальная версия драйвера (например, АТОЛ 9.12.3), но при нажатии кнопки «Параметры» в справочнике торгового оборудования 1С настойчиво рапортует об использовании старой версии (например, 9.12.0). Рассмотрим подробно, почему так происходит, и разберем по шагам, как привести систему к единому знаменателю.
Для начала проанализируем архитектуру взаимодействия 1С с контрольно-кассовой техникой (ККТ). В «обычных формах» (УТ 10.3) 1С работает с кассой не напрямую, а через промежуточное звено — обработку обслуживания (файл с расширением .epf). Внутри этой обработки находится так называемая интеграционная компонента — это библиотека (DLL), которая зашита в макет обработки в виде двоичных данных.
Когда вы открываете окно параметров оборудования, программа обращается не к тем файлам, которые лежат в C:\Program Files\ATOL, а к той самой библиотеке, которую она извлекла из макета обработки во временную папку. Таким образом, даже если вы обновили основной драйвер в Windows, 1С продолжает «видеть» и использовать старую версию компоненты, упакованную внутри обработки обслуживания.
Выясним, где взять актуальную компоненту. При установке драйверов АТОЛ (в данном случае 9-й версии) инсталлятор копирует файлы для интеграции с 1С в отдельный каталог. Обычно он находится по пути:
C:\Program Files (x86)\ATOL\Drivers9\KKT\1Cv83\
В этой папке нам нужно найти ZIP-архив или напрямую DLL-файл. В рассматриваемом случае это файл fptrwin32_fz54_9_12_3_6332.dll. Именно этот файл мы будем «внедрять» в нашу конфигурацию.
Теперь рассмотрим, как заменить устаревшую компоненту на новую. Этот процесс требует использования режима Конфигуратор. Выполним следующие действия:
Файл -> Открыть. Если обработка встроена в конфигурацию, найдите её в дереве объектов (обычно это Обработки -> ТОСервер или аналогичные).ИнтеграционнаяКомпонента или Драйвер.fptrwin32_fz54_9_12_3_6332.dll (или соответствующий ZIP-архив из дистрибутива драйвера).Проанализируем ситуацию: иногда после замены DLL в параметрах всё равно отображается старый номер версии. Это происходит потому, что номер версии может быть жестко прописан в модуле обработки текстом. Разберем, что нужно поправить:
ПолучитьПараметрыНастройки или ВерсияДрайвера, вручную заменим её на актуальную.Пример возможного участка кода в модуле:
Функция ПолучитьВерсиюДрайвера(ОбъектДрайвера) Экспорт
// Если версия определяется программно через объект, код менять не нужно.
// Если же она задана константой, исправляем:
Версия = "9.12.3.6332";
Возврат Версия;
КонецФункции
Выясним важный нюанс: 1С имеет свойство кэшировать внешние компоненты. Даже после обновления обработки программа может продолжать использовать старую DLL, сохраненную в профиле пользователя. Чтобы изменения вступили в силу, проделаем следующее:
%AppData%\Local\1C\1Cv8\ExtCompT.%AppData%\Roaming\1C\1Cv8\ (папки с длинными буквенно-цифровыми именами кэша метаданных).После проведенных манипуляций возвращаемся в режим «Предприятие»:
Сервис -> Торговое оборудование -> Подключение и настройка торгового оборудования.9.12.3.6332.Проанализируем текущее состояние технологий. Драйверы АТОЛ серии 9.х на данный момент официально признаны устаревшими. Они создавались как переходный вариант между 8-й и 10-й версиями. Если ваша организация планирует работать с маркированным товаром (Честный Знак, ФФД 1.2), возможностей 9-й версии драйвера будет недостаточно. Она может некорректно передавать теги маркировки в ОФД.
Рекомендуется рассмотреть переход на 10-ю версию драйверов (DTO 10). Для УТ 10.3 существуют как типовые обработки от компании 1С, поддерживающие 10-й драйвер, так и качественные сторонние разработки. Переход на 10-й драйвер избавит вас от необходимости ручной регистрации библиотек через regsvr32, так как он работает по технологии Native API, которая более стабильна и современна.
Таким образом, мы выяснили, что корень проблемы кроется в «упаковке» драйвера внутрь обработки 1С, и научились обновлять это внутреннее содержимое вручную. Это позволяет поддерживать работоспособность системы даже при использовании старых конфигураций на базе обычных форм.