При подключении торгового оборудования в современных конфигурациях «1С:Предприятие» (например, «1С:Управление торговлей 11») системные администраторы часто сталкиваются с ситуацией: тестовая утилита от производителя видит сканер и корректно считывает штрихкоды, однако в самой «1С» в карточке подключаемого оборудования отображается статус Драйвер: Не установлен. Последующая настройка работы устройства в терминальной сессии (RDP) нередко приводит ко второй проблеме — потере части символов или разбиению одного штрихкода на два независимых события. Разберем по шагам причины этих неполадок и рассмотрим способы их надежного устранения.
Проанализируем архитектуру используемых компонентов. Популярный комплект драйверов торгового оборудования АТОЛ линейки DTO 6.x (выпуск 2009 года) является исключительно 32-разрядной (x86) COM-библиотекой. В операционных системах Windows Server x64 или Windows 7/10/11 x64 разрядность исполняемого процесса и загружаемых им библиотек должна строго совпадать.
Если на клиентской машине или сервере терминалов запущен 64-битный тонкий клиент «1С:Предприятие» (1cv8c.exe из каталога Program Files), он физически не может загрузить 32-битный DLL-файл драйвера в свое адресное пространство. В результате система выдает сообщение об отсутствии драйвера, несмотря на его успешную инсталляцию в операционной системе.
Для корректного подключения старых 32-битных внешних компонент торгового оборудования выполним следующие действия:
C:\Program Files (x86)\1cv8\ваша_версия_платформы\bin\1cv8c.exe.Пример команды для регистрации 32-битной библиотеки в 64-битной Windows:
C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\ATOL\Drivers\Bin\Scaner1C.dll"
После запуска 32-битного клиента «1С» драйвер успешно инициализируется в справочнике торгового оборудования и переходит в рабочее состояние.
Выясним причину, почему при сканировании через RDP теряются символы или один длинный код разбивается на несколько частей. В режиме эмуляции клавиатуры (HID) сканер отправляет считанные данные в виде монолитного высокоскоростного потока нажатий клавиш. Протокол RDP передает клавиатурные нажатия пакетами по сети. При малейших микрозадержках сети или переполнении буфера ввода RDP часть символов отбрасывается, либо пауза между пакетами воспринимается драйвером как завершение одного штрихкода и начало нового.
Для стабилизации клавиатурного ввода применим следующие настройки:
150–200 мс. Это позволит драйверу корректно склеивать пакеты, даже если между ними возникла сетевая пауза.CR (Enter, код 13), что помогает обработчику 1С однозначно зафиксировать конец входящего потока.Использование устаревшего драйвера АТОЛ 6.х несет в себе риски сбоев и зависимость от разрядности. Более стабильным решением является переход на стандартную библиотеку «1С:Сканеры штрихкода (NativeApi)», которая входит в состав типовых конфигураций «1С». Данная компонента доступна как в 32-битной, так и в 64-битной сборке и поддерживает работу без использования устаревших технологий COM/ActiveX.
Эмуляция клавиатуры в терминале всегда подвержена рискам: она зависит от текущей раскладки клавиатуры клиента (русский/английский), состояния клавиши Caps Lock и фокуса курсора в конкретном поле ввода. Наиболее надежный промышленный вариант работы со сканером через RDP — перевод устройства в режим виртуального последовательного порта (Virtual COM Port).
Преимущества режима COM-порта:
Разберем по шагам порядок настройки проброса порта:
COM3..rdp) перейдем на вкладку Локальные ресурсы, нажмем Подробнее и отметим флажком пункт Порты. В файле конфигурации этому соответствует директива:
redirectcomports:i:1
change port /query
net use COM4: \\tsclient\COM3
Такой подход полностью устраняет зависимость от разрядности сторонних клавиатурных библиотек и гарантирует стопроцентную точность считывания штрихкодов любой длины в терминальной среде.