При подключении торгового оборудования в конфигурациях на обычных формах (например, в «1С:Управление торговлей 10.3») под управлением современной операционной системы Windows 10 пользователи и специалисты часто сталкиваются с ситуацией, когда мастер настройки торгового оборудования выдает сообщение: «Не удалось загрузить драйвер сканера». При этом на более новых конфигурациях (например, «Управление торговлей 11») то же самое устройство работает без сбоев.
Разберем причины возникновения этой проблемы и рассмотрим пошаговые способы восстановления работоспособности сканера штрихкода.
Выясним причину сбоя, обратившись к типовому коду обработки обслуживания торгового оборудования в 1С:УТ 10. При создании объекта драйвера платформа пытается подключить и инициализировать внешнюю компоненту:
Если Объект = Неопределено Тогда
Объект = ПолучитьСерверТО().СоздатьОбъектДрайвера(Обработка, мМенеджерЗаписи.Модель.Модель, Параметры);
КонецЕсли;
Внутри функции создания объекта выполняется попытка создания COM-объекта по программному идентификатору AddIn.Scanner:
Попытка
ПрогИД = "AddIn.Scanner";
ПодключитьВнешнююКомпоненту(ПрогИД);
Драйвер = Новый (ПрогИД);
Исключение
Результат = мОшибкаЗагрузкиДрайвера;
ОписаниеОшибки = "Невозможно подключить внешнюю компоненту.
| Проверьте, что внешняя компонента корректно установлена и имеет ту же версию,
| что и требуемая обработкой обслуживания.";
КонецПопытки;
Исключение возникает в тот момент, когда метод Новый (ПрогИД) не находит зарегистрированный COM-сервер в системном реестре Windows или разрядность зарегистрированной библиотеки не совпадает с разрядностью исполняемого файла 1С.
Главная причина ошибки на Windows 10 — отсутствие системной регистрации библиотеки ScanOPOS.dll (или scanopos64.dll) в реестре либо несовпадение битности клиента «1С:Предприятие» и DLL-файла.
Важное правило: разрядность подключаемой внешней компоненты должна строго соответствовать разрядности установленной платформы 1С (клиентского приложения), а не разрядности Windows.
scanopos64.dll (для x64-клиента) или ScanOPOS.dll (для x86-клиента) из шаблонов конфигураций (например, из комплекта УТ 11 или актуального дистрибутива БПО).cmd.exe от имени администратора.
regsvr32 "C:\ПутьКФайлу\scanopos64.dll"
SysWOW64:
C:\Windows\SysWOW64\regsvr32.exe "C:\ПутьКФайлу\ScanOPOS.dll"
Если сканер подключается по USB-интерфейсу, но настраивается в режиме эмуляции COM-порта (RS-232), выполним следующие действия:
COM15 или COM22), сменим его в свойствах порта (раздел «Параметры порта» — «Дополнительно») на диапазон от COM1 до COM9, так как старые обработки обслуживания УТ 10 могут некорректно обрабатывать двузначные номера портов.Если работа через COM-порт и внешнюю компоненту не требуется, настроим сканер в режиме эмуляции клавиатуры:
CR или LF / Enter). Без настроенного суффикса 1С не сможет зафиксировать момент окончания считывания штрихкода.