Как подключить сканер штрихкодов через драйвер ScanOPOS в 64-битном клиенте 1С?

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

При развертывании 64-разрядного клиента платформы «1С:Предприятие 8.3» на сервере терминалов (RDP) системные администраторы и специалисты 1С нередко сталкиваются с ситуацией, когда торговое оборудование — в частности сканеры штрихкодов — полностью перестает определяться и функционировать. В 32-разрядном клиенте та же связка работает стабильно. Разберем причины возникновения этой проблемы и рассмотрим все доступные способы её решения.

Проанализируем техническую причину сбоя: классический драйвер ScanOPOS.dll является 32-битной внешней COM-компонентой. Архитектура операционной системы Windows не позволяет 64-битному процессу (1cv8.exe x64) напрямую загружать в свое адресное пространство 32-битные динамические библиотеки (DLL). Поскольку разрядности клиента и внешней компоненты не совпадают, 1С выдает ошибку инициализации или просто не видит подключенное торговое оборудование.

Решение 1. Запуск 32-битной версии клиента 1С на терминальном сервере

Если в информационной базе используется унаследованный механизм торгового оборудования, жестко завязанный на старый драйвер ScanOPOS.dll, самым быстрым и надежным решением будет запуск 32-битного клиента «1С:Предприятие».

Разберем по шагам, как организовать работу:

  1. Установим на 64-разрядный сервер терминалов 32-битный дистрибутив тонкого или толстого клиента «1С:Предприятие 8.3» (папка установки по умолчанию: C:\Program Files (x86)\1cv8\...).
  2. Настроим запуск ярлыков для пользователей RDP, указав путь к исполняемому файлу из 32-разрядного каталога.
  3. Зарегистрируем библиотеку ScanOPOS.dll в 32-разрядной подсистеме Windows с помощью утилиты regsvr32, запустив командную строку от имени администратора: C:\Windows\SysWOW64\regsvr32.exe "C:\Path\To\ScanOPOS.dll"
  4. Проверим работу сканера в 1С: оборудование инициализируется штатно, так как процесс 1С и компонента драйвера имеют одинаковую 32-битную разрядность.

Решение 2. Переход на драйвер «1С:Сканеры штрихкода (NativeApi)» с поддержкой x64

В современных конфигурациях на базе «Библиотеки подключаемого оборудования» (БПО) фирма «1С» отказалась от устаревшей технологии COM в пользу Native API. Новый драйвер поставляется сразу в двух вариантах: для 32- и 64-битных платформ.

Выполним переход на компонент Native API по следующему алгоритму:

  1. Откроем информационную базу и перейдем в раздел Администрирование — Подключаемое оборудование — Драйверы оборудования.
  2. Создадим или выберем элемент 1С:Сканеры штрихкода (NativeApi).
  3. Нажмем кнопку Установить драйвер (или загрузим актуальный архив из дистрибутива БПО). 1С автоматически извлечет и подключит библиотеку нужной разрядности — ScanOPOSNativeWin64.dll для 64-битного клиента.
  4. Перейдем в настройки самого экземпляра сканера штрихкода и укажем установленный драйвер NativeApi.
  5. Выполним тест устройства: при считывании тестового штрихкода данные должны отобразиться в окне проверки.

Решение 3. Использование альтернативных 64-битных драйверов сторонних разработчиков

Если конфигурация не поддерживает БПО Native API, но требуется использовать именно 64-битный клиент платформы, можно задействовать внешние компоненты сторонних разработчиков, имеющие нативную поддержку x64.

Посмотрим на доступные альтернативы:

  1. Драйверы от компаний «Штрих-М» или «АТОЛ»: универсальные драйверы устройств ввода этих производителей имеют скомпилированные 64-разрядные компоненты, которые корректно регистрируются и загружаются в 64-битном клиенте 1С.
  2. Драйвер от «Сканкод»: специализированное программное обеспечение для сканеров CipherLab и других моделей, также содержащее x64-модули.

Для подключения выберем в справочнике драйверов оборудования соответствующего поставщика, загрузим 64-битную внешнюю компоненту и перепривяжем физический сканер к новому обработчику.

Решение 4. Перевод сканера в режим клавиатурного ввода (HID)

Если сканер подключен через порт USB и нет необходимости использовать COM-эмуляцию с перехватом прерываний через ScanOPOS.dll, можно перевести устройство в режим эмуляции клавиатуры (USB HID Keyboard).

Разберем особенности этого режима:

  1. Считаем специальный управляющий штрихкод из руководства пользователя сканера для перевода его в режим USB HID.
  2. В настройках сканера запрограммируем передачу суффикса (обычно это Enter — код 13, либо Tab — код 9) или префикса.
  3. В 1С подключим сканер как клавиатурное устройство ввода через стандартные механизмы БПО (драйвер «1С:Сканеры штрихкода (NativeApi)» с типом подключения «Клавиатура»).
  4. В таком режиме сканер передает считанные символы как обычный ввод с клавиатуры, что полностью исключает зависимость от разрядности клиента 1С и проблем с пробросом COM-портов в терминальной сессии RDP.

Важный нюанс при работе по RDP: если сканер работает в режиме виртуального COM-порта (Virtual COM), убедимся, что на клиенте удаленного рабочего стола включено перенаправление портов (вкладка «Локальные ресурсы» — «Подробнее» — флажок «Порты»), а в групповых политиках сервера не запрещен проброс последовательных портов.

← На главную