Как настроить эмуляцию COM-порта для USB-сканера штрихкодов в 1С

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

При автоматизации торговых точек на базе 1С системные администраторы часто сталкиваются с проблемой медленной работы сканеров штрихкодов. Если сканер подключен в режиме эмуляции клавиатуры (HID), ввод данных может занимать от 0,5 до 1 секунды, что критично при большом потоке покупателей. Решением является перевод устройства в режим USB-COM (Virtual Serial Port). В этой статье мы подробно разберем, как настроить эмуляцию для различных моделей сканеров и ускорить их работу.

Причина медленной работы сканера в режиме клавиатуры

Рассмотрим ситуацию: на новых моноблоках сканер Symbol LS2208 начинает «тормозить», вводя строку символов слишком долго. Проблема часто кроется не в производительности процессора, а в параметре Intercharacter Delay (задержка между символами). В режиме клавиатуры компьютер воспринимает сканер как очень быстрого наборщика текста. Если операционная система или драйвер USB-контроллера имеют настройки энергосбережения или задержки опроса порта, каждый символ штрихкода передается с паузой.

Проанализируем способы решения: либо увеличить скорость в режиме клавиатуры через программирование задержки (Keystroke Delay), либо перевести устройство в режим эмуляции COM-порта, где данные передаются целым пакетом через прерывание, что гораздо быстрее и надежнее для 1С.

Настройка сканера Symbol (Zebra) LS2208 в режиме эмуляции COM

Для настройки сканеров Symbol на операционных системах Windows 7 и выше (включая 64-битные версии) существует проверенный алгоритм. Рассмотрим пошагово процесс установки драйвера, если автоматическая установка не сработала:

  1. Подготовка системных файлов: Убедимся, что в системе присутствует стандартный драйвер usbser.sys. Проверим папки Windows\system32\drivers и Windows\system32. Если файла нет, его необходимо скопировать из дистрибутива Windows или найти в репозитории драйверов системы.
  2. Создание INF-файла: Зачастую производитель предоставляет текстовое содержимое драйвера. Нам нужно создать файл с расширением .inf. Для этого создадим текстовый документ, вставим в него код драйвера и сохраним с расширением .inf (важно, чтобы расширение не осталось .txt).
  3. Перевод сканера в режим CDC: Нам необходимо считать управляющий штрихкод из руководства пользователя (обычно называется "USB CDC Host"). После считывания сканер перезагрузится и определится в диспетчере устройств как неизвестное устройство или "Symbol Bar Code Scanner".
  4. Ручная установка драйвера:
    • Зайдем в «Диспетчер устройств».
    • Нажмем правой кнопкой на неизвестном сканере — «Обновить драйверы».
    • Выберем «Выполнить поиск драйверов на этом компьютере», затем «Выбрать из списка уже установленных».
    • Укажем категорию «Порты (COM и LPT)».
    • Нажмем «Установить с диска» и укажем путь к нашему созданному .inf файлу.
    • Игнорируем предупреждение о цифровой подписи и завершаем установку.

Важное дополнение: Современный подход Zebra предполагает использование утилиты 123Scan2. Мы рекомендуем установить это ПО, подключить сканер и через интерфейс программы выбрать режим "USB CDC Host". Программа сама обновит прошивку и предложит установить корректный подписанный драйвер Zebra CDC Driver.

Настройка сканера Metrologic (Honeywell) Voyager 9520

Для сканеров серии Metrologic процедура настройки отличается. Здесь основная задача — правильно запрограммировать префиксы или переключить интерфейс. Разберем последовательность действий для эмуляции через управляющие штрихкоды:

  1. Считаем штрихкод «Восстановить значения по умолчанию».
  2. Считаем код «Начало/конец программирования».
  3. Для активации эмуляции COM-порта используем код «Enable Uni-Directional USB Serial Emulation».
  4. Если мы хотим остаться в режиме клавиатуры, но добавить автоматический вызов окна поиска в 1С (через клавишу F7), используем следующую последовательность (программирование префикса):
    • Считаем код «Конфигурируемый префикс №1».
    • Считаем кодовые байты (цифры штрихкодов), соответствующие клавише F7.
    • Завершаем программирование кодом «Начало/конец программирования».

Для корректной работы COM-порта в Windows для этих моделей необходимо установить Honeywell (HSM) USB Serial Driver. После установки в системе появится виртуальный порт, например, COM3, который нужно указать в настройках торгового оборудования 1С.

Работа в терминальной сессии (RDP)

Часто пользователи сталкиваются с тем, что в локальной сессии сканер работает, а в 1С через терминальный сервер — нет. Выясним причину: виртуальные COM-порты требуют проброса (маппинга) в сессию. Проанализируем необходимые действия:

В настройках RDP-клиента на вкладке «Локальные ресурсы» нажмем «Подробнее» и отметим галочкой «Порты». Однако этого бывает недостаточно. На сервере в командной строке выполним команду для проверки видимости портов:

change port /v

Если порт не пробросился, может потребоваться настройка групповых политик сервера, разрешающих перенаправление портов COM. Также помните, что при использовании эмуляции клавиатуры в терминале, раскладка клавиатуры на клиенте и сервере должна совпадать в момент сканирования, иначе штрихкод будет передан некорректно.

Решение для безымянных сканеров (например, FarSun)

Если у вас бюджетный сканер, для которого нет драйверов виртуального COM-порта, можно воспользоваться программным методом перехвата. В некоторых программах учета (например, «Инфо-Предприятие») можно выбрать режим «PS/2 в режиме перехвата команд». В 1С для этого используется драйвер «1С:Сканер штрихкода» (NativeApi).

Разберем, как это работает: сканер остается в режиме клавиатуры (HID), но в настройках 1С мы указываем, что это клавиатурный сканер и задаем префикс (например, #151 для F7 или #13 для Enter). Драйвер 1С перехватывает поток ввода от этого устройства, не давая ему «печатать» цифры в активное поле, и сразу генерирует внешнее событие в программе. Это избавляет от необходимости устанавливать сложные драйверы эмуляции.

Конфликты с USB 3.0 и электропитанием

При подключении сканеров к современным моноблокам (порты синего цвета) могут возникать «отвалы» устройства. Проанализируем ситуацию: старые контроллеры сканеров не всегда поддерживают протоколы энергосбережения USB 3.0. Рекомендуем выполнить следующие действия:

  1. Зайдем в «Панель управления» — «Электропитание».
  2. Выберем «Настройка схемы электропитания» — «Изменить дополнительные параметры питания».
  3. В разделе «Параметры USB» установим значение «Запрещено» для параметра «Параметр временного отключения USB-порта».
  4. В диспетчере устройств в свойствах USB-концентраторов на вкладке «Управление электропитанием» снимем галочку «Разрешить отключение этого устройства для экономии энергии».

Соблюдение этих инструкций позволит добиться стабильной и быстрой работы торгового оборудования в любой конфигурации 1С.

← На главную