Часто в складской логистике или на участках упаковки возникает задача: к одному компьютеру подключено несколько сканеров штрих-кодов, каждый из которых закреплен за определенным сотрудником. При использовании стандартного механизма ВнешнееСобытие в 1С:Комплексная автоматизация (обычное приложение) мы получаем данные, где источником является обобщенное СканерШтрихкода. Давайте разберемся, как программно и аппаратно различить устройства, чтобы точно знать, кто именно отсканировал товар.
Это самый простой и доступный метод, который не требует глубокой доработки конфигурации или изменения драйверов. Большинство современных сканеров (например, SunLux) позволяют задать уникальные символы (префиксы или суффиксы) через конфигурационный лист самого сканера.
A01, для второго — A02 и так далее.РегистрСведений, где будет храниться соответствие префикса конкретному пользователю или сотруднику.ВнешнееСобытие (или в обработчике события ПолучениеДанных внешней компоненты) анализируйте приходящую строку. Если строка начинается с определенного префикса, вы легко определите владельца устройства.Пример логики обработки в коде:
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если Лев(Данные, 3) = "A01" Тогда
Сотрудник = Справочники.Пользователи.НайтиПоНаименованию("Иванов");
ИначеЕсли Лев(Данные, 3) = "A02" Тогда
Сотрудник = Справочники.Пользователи.НайтиПоНаименованию("Петров");
КонецЕсли;
// Дальнейшая логика обработки заказа
КонецПроцедуры
Если ваши сканеры поддерживают режим эмуляции USB-COM (виртуальный последовательный порт), этот метод будет наиболее надежным и профессиональным.
COM-порт в системе Windows.COM3, COM4, COM5).ВнешнейКомпоненты для каждого порта. В этом случае 1С будет получать событие не от общего потока клавиатуры, а от конкретного последовательного порта, жестко закрепленного за устройством.Если техническая настройка префиксов кажется избыточной, вы можете реализовать бизнес-логику «авторизации». Создайте уникальные QR-коды для каждого сканера и наклейте их прямо на корпуса устройств.
Алгоритм действий сотрудника:
Важное примечание: При выборе метода учитывайте, что клавиатурный ввод (HID-режим) может смешивать сигналы, если оба устройства сработают одновременно. Переход на COM-эмуляцию или использование Raw Input API через внешнюю dll на C# — это наиболее надежные методы для исключения коллизий ввода в сложных корпоративных системах.