При работе с конфигурацией Управление производственным предприятием (УПП) редакции 1.3 специалисты часто сталкиваются с парадоксальной ситуацией: при попытке подключить сканер штрихкода через стандартный мастер настройки оборудование оказывается недоступным или вовсе отсутствует в перечне. Ситуация осложняется тем, что современные серверы и рабочие станции все чаще используют 64-разрядные версии платформы 1С:Предприятие, в то время как УПП 1.3 во многом опирается на механизмы обычных форм и устаревшие COM-компоненты. Разберем детально, почему возникает эта проблема и как ее эффективно решить.
Первоочередная причина, по которой сканер штрихкода «не виден» в системе — это несовместимость 32-битных драйверов оборудования с 64-битным процессом клиентского приложения 1С. Рассмотрим этот механизм подробнее. Большинство классических драйверов для торгового оборудования (например, ScanOPOS.dll) были разработаны десятилетия назад под 32-битную архитектуру. Когда вы запускаете 64-битный тонкий или толстый клиент, операционная система физически не позволяет приложению загрузить 32-битную динамическую библиотеку (DLL). В результате 1С просто не может инициализировать драйвер, и соответствующий класс оборудования становится недоступным в интерфейсе.
В конфигурации 1С:УПП 1.3 ситуация усугубляется «гибридностью» системы. В последних релизах (например, 1.3.133.2 и выше) соседствуют две подсистемы подключения оборудования:
Если специфика вашего предприятия позволяет использовать 32-битную версию клиента 1С, это будет кратчайшим путем к решению проблемы. Выясним, как это сделать правильно. Даже если на сервере установлена 64-битная платформа, вы можете установить на рабочую станцию пользователя 32-битный дистрибутив. Для этого в настройках стартера 1С (список баз) для конкретной информационной базы можно принудительно указать разрядность.
После запуска под 32-битным клиентом механизмы обычных форм в УПП 1.3 корректно подхватят зарегистрированные в системе COM-компоненты. Однако помните, что библиотеку нужно предварительно зарегистрировать в операционной системе. Для этого запустите командную строку от имени администратора и выполните регистрацию:
regsvr32 "C:\Program Files (x86)\1C\1C Barcode Scanner\8.0.17.1\ScanOPOS.dll"
Обратите внимание, что путь может отличаться в зависимости от версии установленного драйвера. После успешной регистрации и запуска 32-битного клиента сканер станет доступен в мастере подключения.
Что делать, если использование 32-битной платформы невозможно (например, из-за ограничений памяти при работе с тяжелыми отчетами)? В этом случае нам поможет встроенная Библиотека подключаемого оборудования (БПО), которая уже интегрирована в современные релизы УПП 1.3. Проанализируем шаги настройки:
Важный нюанс: После того как вы настроите оборудование в интерфейсе управляемых форм (тонкий клиент), оно должно стать доступным и для документов, работающих на обычных формах (толстый клиент), при условии, что в коде конфигурации реализована трансляция вызовов между подсистемами. В последних релизах УПП разработчики 1С предусмотрели этот механизм.
Рассмотрим ситуацию, когда драйвер никак не хочет «дружить» с платформой, а работа должна продолжаться. В этом случае мы можем перевести сканер в режим Keyboard Emulation. В этом режиме сканер работает как обычная клавиатура: он считывает код и «печатает» его в то поле, где в данный момент находится курсор.
Для настройки этого режима не требуются специализированные драйверы 1С. Достаточно отсканировать управляющий штрихкод из инструкции к сканеру (обычно называется «Enable Keyboard Emulation» или «USB HID Mode»). Однако у этого способа есть минус: 1С не будет генерировать «Внешнее событие», и пользователю придется каждый раз устанавливать фокус в поле ввода кода. Чтобы вернуть комфорт работы, можно использовать драйвер «1С:Сканеры штрихкода» версии 8.х и выше, настроив его на работу с клавиатурой (выбрав соответствующий порт в настройках).
Разберем ситуацию, когда запуск от имени администратора не помогает. На 64-битных операционных системах существует разделение системных каталогов. Проанализируем, куда именно регистрировать библиотеки:
C:\Windows\SysWOW64\regsvr32.exe.C:\Windows\System32\regsvr32.exe.Посмотрим на пример правильной регистрации для 32-битной компоненты в 64-битной Windows:
cd C:\Windows\SysWOW64
regsvr32.exe "C:\ПутьКВашейБиблиотеке\ВашаКомпонента.dll"
Если в мастере подключения сканер «есть, но недоступен», это часто означает, что 1С видит описание оборудования в метаданных, но не может обнаружить установленную и зарегистрированную в реестре Windows COM-библиотеку. Проверьте права доступа пользователя к ветке реестра HKEY_CLASSES_ROOT. Иногда антивирусное ПО блокирует попытки 1С автоматически зарегистрировать компоненту при первом обращении. В таких случаях ручная регистрация через командную строку, описанная выше, является единственным надежным решением.
Подведем итог: для успешного подключения сканера в УПП 1.3 на современных системах мы рекомендуем использовать 32-битный клиент для максимальной совместимости со старым кодом или переходить на настройку через управляемые формы (БПО) с использованием NativeApi драйверов для 64-битных систем. Совместное использование этих подходов позволит вам избежать большинства проблем с торговым оборудованием. Для настройки оборудования по этой технологии можно использовать обработку обслуживания сканера на базе NativeAPI.