Как подключить несколько сканеров штрихкода к одному компьютеру и различать их в 1С

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

При автоматизации складских процессов или крупных торговых точек часто возникает задача подключения нескольких сканеров штрихкода к одному рабочему месту. Основная сложность заключается в том, что система должна понимать, с какого именно устройства пришли данные, чтобы выполнить соответствующее действие (например, один сканер используется для приемки, другой — для отгрузки, а третий — для комплектации, и всё это в рамках одного открытого документа). Рассмотрим подробно, как реализовать разделение потоков данных от разных устройств.

Проблема режима «Разрыв клавиатуры» (HID)

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

Решение №1: Использование уникальных аппаратных префиксов

Это самый простой и универсальный метод, который подходит для сканеров, работающих в режиме клавиатуры. Разберем его по шагам:

  1. Программирование сканера: Каждый современный сканер (например, брендов Honeywell, Datalogic, Zebra) поддерживает настройку с помощью управляющих штрихкодов. Нам необходимо зайти в инструкцию к устройству и найти раздел «Add Prefix».
  2. Назначение идентификаторов: Мы программируем первый сканер так, чтобы он перед штрихкодом всегда присылал символ «1», второй — «2», третий — «3».
  3. Обработка в 1С: В коде обработчика ВнешнееСобытие или при анализе строки ввода мы считываем первый символ. Если пришла «1» — выполняем процедуру для первого поста, если «2» — для второго.

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

Решение №2: Эмуляция COM-порта (RS-232)

Этот метод считается профессиональным и наиболее надежным («промышленным»). В этом режиме сканер передает данные не в поток клавиатуры, а в виртуальный последовательный порт. Рассмотрим преимущества этого подхода:

Для реализации этого метода необходимо перевести сканер в режим «USB Serial Emulation» (также через сервисные штрихкоды) и установить соответствующий драйвер производителя в операционной системе.

Решение №3: Настройка в Библиотеке подключаемого оборудования (БПО)

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

В справочнике «Подключаемое оборудование» мы создаем три отдельных экземпляра оборудования типа «Сканеры штрихкода». Для каждого экземпляра в параметрах подключения указываем свой COM-порт. В коде конфигурации при обработке события оповещения мы можем идентифицировать устройство. Рассмотрим пример кода:


// Пример обработки в модуле формы или в обработчике БПО
Процедура ОбработатьШтрихкоды(ДанныеСканера)
    
    Для Каждого ТекущийШтрихкод Из ДанныеСканера Цикл
        // Идентификация устройства по ссылке на оборудование
        Если ТекущийШтрихкод.Устройство = Объект.СканерПриемка Тогда
            ВыполнитьПриемку(ТекущийШтрихкод.Штрихкод);
        ИначеЕсли ТекущийШтрихкод.Устройство = Объект.СканерОтгрузка Тогда
            ВыполнитьОтгрузку(ТекущийШтрихкод.Штрихкод);
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Решение №4: Использование драйверов сторонних разработчиков (например, Штрих-М)

Как отмечалось в обсуждении на форуме, некоторые драйверы (например, от компании «Штрих-М») позволяют разделять данные по логическим устройствам. При получении события от драйвера, в параметрах передается номер логического устройства (ЛУ). Это позволяет даже на одном физическом COM-порту (если используется специфический концентратор) или при разных настройках драйвера четко разграничивать задачи.

Специфика беспроводных сканеров (Bluetooth)

Проанализируем ситуацию с беспроводными устройствами. У них есть два основных профиля подключения:

  1. HID (Human Interface Device): Работает как клавиатура. Применим метод с префиксами (Решение №1).
  2. SPP (Serial Port Profile): Создает виртуальный COM-порт. Это предпочтительный вариант для 1С, так как он позволяет использовать Решение №2 и Решение №3, обеспечивая максимальную стабильность.

Технические нюансы и рекомендации

При подключении трех и более сканеров к одному системному блоку следует обратить внимание на электропитание. Три активных лазерных или имидж-сканера могут потреблять значительный ток. Рекомендуем использовать активный USB-хаб с внешним блоком питания, чтобы избежать внезапных отключений оборудования или портов материнской платы.

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

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

← На главную