При организации работы пользователей в терминальном режиме часто возникает ситуация: сканер штрихкода успешно переведен в режим эмуляции COM-порта, на локальной рабочей станции он функционирует исправно, в настройках подключения удаленного рабочего стола включен проброс последовательных портов, однако внутри сессии RDP на сервере виртуальный порт со сканером отсутствует. В то же время другие устройства могут пробрасываться без сбоев. Разберем причины такого поведения оборудования Honeywell и рассмотрим проверенные способы восстановления работоспособности сканера в 1С.
Для понимания корня проблемы проанализируем механизм трансляции портов протоколом RDP и особенности драйверов Honeywell:
WM_DEVICECHANGE в системе или не регистрируются как стандартный класс устройств Serial, из-за чего клиент удаленного рабочего стола игнорирует данный порт при открытии сессии.Рассмотрим самое простое и распространенное решение. Если виртуальному порту сканера назначен номер, конфликтующий с сервером, его необходимо изменить на локальной машине:
Honeywell HSM USB Serial Port).COM5, COM7 или COM12. Если система сообщает, что порт используется, но физически устройства нет, можно назначить свободный номер из второго десятка.Проверим, видит ли сервер перенаправленные порты от клиента. Откроем командную строку (CMD) внутри терминальной сессии и выполним диагностику:
Для просмотра доступных портов выполним команду:
change port /query
Если порт успешно перенаправлен, в выводе отобразится строка сопоставления вида \Device\RdpDrPort\;COMx:y\tsclient\COMx. Если сопоставление не произошло автоматически, выполним принудительное связывание сетевого ресурса клиента с портом сессии:
net use COM5: \\tsclient\COM5
В этой команде первый параметр указывает на желаемый номер порта внутри терминального сеанса, а путь \\tsclient\COM5 обращается к физическому порту клиентской машины.
Разберем установку драйверов. Для корректной регистрации виртуального порта в реестре Windows необходим актуальный драйвер Honeywell HSM USB Serial Driver версии 3.5.x или новее. Установку дистрибутива следует выполнять строго от имени администратора до физического подключения сканера к компьютеру.
В ряде конфигураций полезно установить драйвер Honeywell непосредственно на сам терминальный сервер. Это регистрирует необходимые классы устройств и системные библиотеки в операционной системе сервера, что позволяет корректно распознавать транслируемый поток данных.
Проанализируем альтернативный вариант, который полностью снимает зависимость от проброса COM-портов. Исторически режим COM-порта выбирали ради асинхронного вызова внешнего события в 1С, чтобы пользователю не приходилось держать фокус ввода в конкретном поле документа.
Однако в современных конфигурациях 1С и типовых библиотеках подключаемого оборудования (БПО) сертифицированный драйвер 1С:Сканеры штрихкода (NativeApi), а также драйверы торгового оборудования АТОЛ поддерживают режим работы Клавиатура с перехватом событий.
Разберем по шагам переход на этот сценарий:
F7 или комбинацию спецсимволов), считав управляющие коды из руководства по настройке сканера.1С:Сканер штрихкода (NativeApi).При такой настройке сканер транслирует данные как стандартное устройство ввода через RDP без каких-либо сбоев перенаправления, а драйвер 1С перехватывает поток и генерирует штатное внешнее событие ОбработкаВнешнегоСобытия.
Если требуется сохранить именно COM-режим, обратим внимание на специфику заполнения параметров в интерфейсе 1С:
\\tsclient может отсутствовать. В таком случае имя порта (например, COM5) необходимо вписать в поле вручную с клавиатуры.Таймаут (интервал ожидания между символами), чтобы штрихкод считывался единой строкой и не дробился на части.Применив переназначение номера порта на локальной машине или переведя сканер в режим перехвата клавиатурных событий через NativeApi, мы получаем стабильное считывание штрихкодов в удаленной сессии без потери функционала внешних событий 1С.