Как лучше подключить сканер штрихкодов к 1С: через COM-порт или в разрыв клавиатуры?

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

При внедрении торгового оборудования перед специалистом часто встает вопрос: какой режим работы сканера выбрать? На первый взгляд кажется, что «разрыв клавиатуры» (HID-режим) удобнее, ведь данные попадают в любое активное поле. Однако профессиональная настройка в среде 1С чаще всего требует использования COM-порта. Разберем подробно оба метода, проанализируем их плюсы и минусы, а также выясним, как современные требования к маркировке влияют на этот выбор.

Режим «Разрыв клавиатуры» (Keyboard Wedge / HID)

В этом режиме компьютер воспринимает сканер как обычную дополнительную клавиатуру. Когда вы считываете штрихкод, устройство просто имитирует быстрое нажатие клавиш. Рассмотрим ключевые особенности этого подхода:

  1. Простота проверки: Сканер работает без специальных драйверов. Проверить его работоспособность можно в обычном «Блокноте» — считанный код просто напечатается в текстовом файле.
  2. Зависимость от фокуса: Это главный минус. Чтобы данные попали в 1С, курсор обязательно должен находиться в нужном поле ввода (например, в окне поиска или в ячейке табличной части). Если оператор случайно переключил окно или нажал не туда, данные «улетят» в пустоту.
  3. Влияние раскладки: Поскольку сканер имитирует нажатия клавиш, текущий язык ввода (русский/английский) в Windows может исказить данные. Например, вместо цифр могут считаться спецсимволы, если зажата клавиша Shift или включена неверная раскладка.
  4. Проблемы с маркировкой: Современные коды DataMatrix (Честный ЗНАК) содержат непечатные символы-разделители (например, GS1). В режиме клавиатуры эти символы часто «теряются», что делает невозможным корректный разбор кода в 1С.

Режим COM-порта (RS-232 и эмуляция USB-COM)

При использовании COM-порта данные передаются напрямую в систему, минуя буфер клавиатуры. Проанализируем, почему этот метод считается стандартом для автоматизации на базе 1С:

Независимость от фокуса ввода: В 1С настраивается специальная обработка внешнего события. Программа постоянно «слушает» порт, и как только данные поступают, вызывается процедура ВнешнееСобытие. Это позволяет 1С автоматически идентифицировать товар, открыть нужный документ или создать строку в табличной части, даже если в этот момент оператор просто смотрел на список документов и ничего не нажимал.

Стабильность данных: Передаются «сырые» байты. Раскладка клавиатуры, состояние клавиш Caps Lock или Num Lock никак не влияют на результат. Это критически важно для работы с алкогольной продукцией (ЕГАИС) и маркировкой (DataMatrix), так как все служебные символы передаются корректно.

Настройка сканера в среде 1С

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

  1. Переводим физический сканер в режим эмуляции COM-порта (обычно это делается считыванием специального штрихкода из инструкции к устройству).
  2. Устанавливаем драйвер производителя (например, Zebra, Honeywell или универсальный драйвер 1С).
  3. В 1С переходим в раздел «Администрирование» — «Подключаемое оборудование».
  4. Создаем новый экземпляр устройства, выбираем тип «Сканеры штрихкода» и указываем соответствующий драйвер.
  5. В настройках оборудования нажимаем «Тест устройства». При сканировании в окне теста должна появиться строка с кодом.

Если данные считываются, но 1С не реагирует в документах, проанализируем настройки суффикса. Обычно сканеры посылают после кода символ CR (перевод каретки, код 13). В настройках 1С в поле «Суффикс» должно быть указано соответствующее значение (обычно это '13' или 'Enter').

Решение проблемы «прыгающих» COM-портов

Частая проблема виртуальных COM-портов — изменение их номера при переключении сканера в другой USB-разъем. Выясним причину: Windows присваивает новый номер порта каждому новому идентификатору устройства. Чтобы зафиксировать номер порта, можно воспользоваться правкой реестра, которая заставляет систему игнорировать серийный номер USB-устройства при назначении порта.

Рассмотрим пример конфигурационного файла реестра (.reg), который помогает решить эту проблему для некоторых моделей сканеров:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags]
"IgnoreHWSerNum11CA0207"=hex:01

Где 11CA — это VID (Vendor ID), а 0207 — PID (Product ID) вашего устройства. Эти данные можно найти в диспетчере устройств в свойствах оборудования (вкладка «Сведения» — «ИД оборудования»).

Режим HID-POS: современная альтернатива

Посмотрим на более продвинутый вариант — HID-POS. Это современный стандарт, который объединяет лучшие черты обоих интерфейсов. Он работает через USB, но не имитирует клавиатуру. Вместо этого данные передаются пакетами (датаграммами). Прелесть в том, что системе не нужны виртуальные COM-порты, которые могут «отваливаться», а данные приходят так же надежно и полно, как через RS-232, включая все символы маркировки.

Итоговые рекомендации

Проанализировав ситуацию, мы можем сделать следующие выводы:

Выбор в пользу COM-порта значительно упрощает жизнь оператору: ему не нужно следить за раскладкой клавиатуры и положением курсора, что снижает количество ошибок и ускоряет процесс приемки и отгрузки товаров.

← На главную