В чем разница между эмуляцией COM-порта и режимом клавиатуры для сканера штрихкода в 1С:Розница?

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

При подключении сканера штрихкодов к рабочему месту кассира (РМК) или учетной системе 1С часто возникает вопрос: какой режим работы выбрать — эмуляцию COM-порта (Virtual COM Port) или режим клавиатуры (HID Keyboard). Разберем детально технические различия, влияние на работу кассира, а также особенности обработки данных маркировки и альтернативные варианты подключения.

1. Генерация внешнего события и фокус ввода

Главное архитектурное различие заключается в том, как платформа 1С получает данные от устройства:

  1. Режим эмуляции COM-порта: сканер взаимодействует с 1С через драйвер торгового оборудования. При считывании штрихкода генерируется асинхронное внешнее событие ОбработкаВнешнегоСобытия. Для кассира это означает полную независимость от интерфейса: не имеет значения, какое поле активно на экране или открыто ли диалоговое окно — товар добавится в чек автоматически.
  2. Режим клавиатуры (HID Keyboard): операционная система воспринимает сканер как обычную USB-клавиатуру. Сканер просто «нажимает» клавиши с символами штрихкода и завершает ввод нажатием Enter. Если курсор не установлен в специальное поле ввода (или не нажата функциональная клавиша поиска по ШК, например, F7), штрихкод будет вбит в случайный реквизит формы либо проигнорирован.

2. Зависимость от раскладки клавиатуры и языка ввода

Проанализируем частую проблему, с которой сталкиваются пользователи при работе в режиме HID Keyboard:

  1. В клавиатурном режиме скан-код преобразуется операционной системой с учетом текущей раскладки. Если на компьютере включен русский язык, латинский штрихкод будет передан как набор кириллических символов, что приведет к ошибке «Товар не найден».
  2. В режиме эмуляции COM-порта данные передаются в виде прямого потока байтов (ASCII-кодов) через виртуальный последовательный порт. Язык ввода и текущая раскладка клавиатуры Windows на передачу данных никак не влияют.

3. Работа с кодами маркировки («Честный ЗНАК» и DataMatrix)

При продаже маркированной продукции (табак, обувь, молочная продукция, вода, текстиль) режим клавиатуры вызывает критические ошибки:

  1. Потеря непечатных разделителей: коды DataMatrix содержат обязательный служебный символ-разделитель групп GS (ASCII 29 / FNC1). Стандартный клавиатурный драйвер Windows отсекает такие управляющие символы. В итоге 1С не может корректно разобрать структуру кода маркировки на серийный номер, код товара и криптохвост.
  2. Сохранение структуры в COM-порте: при передаче через виртуальный COM-порт весь поток байтов, включая служебные символы GS, передается без искажений, что обеспечивает бесперебойную проверку кодов маркировки.

4. Особенности работы клавиатурных сканеров через БПО (NativeApi)

В современных типовых решениях на базе Библиотеки подключаемого оборудования (БПО) драйвер 1С:Сканеры штрихкода (NativeApi) способен программно перехватывать клавиатурный ввод и формировать внешнее событие. Рассмотрим, как это работает и какие имеет ограничения:

  1. Драйвер устанавливает низкоуровневый перехватчик (Windows Hook) и отслеживает скорость поступления символов или специализированные префиксы (например, F7 или Ctrl+F7).
  2. При работе через терминальный сервер (RDP) или при нестабильном канале связи задержки между пакетами могут нарушать распознавание потока символов, из-за чего 1С перестает определять ввод со сканера как внешнее событие.
  3. Быстрый ручной ввод пользователя может ошибочно приниматься за сканирование, либо хуки могут блокироваться политиками безопасности и антивирусным ПО.

5. Альтернативный современный режим: USB HID POS

Большинство современных 2D-сканеров поддерживают промежуточный режим — USB HID POS (USB OEM). Разберем его преимущества перед классическим виртуальным COM-портом и клавиатурой:

  1. Не требует установки сторонних драйверов виртуального COM-порта в операционную систему.
  2. Устройство не привязывается к конкретному номеру COM-порта (например, COM3, COM5) и не «теряет» связь, если кассир переключил провод в другой USB-разъем компьютера.
  3. Генерирует стандартное внешнее событие в 1С без необходимости держать фокус в поле ввода.
  4. Корректно передает все скрытые символы и разделители маркировки (GS/FNC1) и не зависит от языковой раскладки.
  5. Штатно поддерживается драйвером 1С:Сканеры штрихкода (NativeApi).

6. Сравнение и итоговые рекомендации

Выясним, какой режим подключения предпочтительнее в конкретных условиях:

  1. Режим эмуляции COM-порта или USB HID POS: является обязательным стандартом для розничной торговли, РМК и работы с маркированной продукцией («Честный ЗНАК»). Обеспечивает максимальную скорость работы кассира и исключает ошибки ввода.
  2. Режим клавиатуры (HID Keyboard): допустим только для простых операций на складе или в офисе (без маркировки), где оператор вручную активирует поле поиска перед сканированием.
← На главную