Настройка торгового оборудования в устаревших конфигурациях, таких как Управление торговлей 10.3, при внедрении механизмов маркировки часто вызывает сложности. Основная проблема заключается в конфликте между старой архитектурой ТОСервер и современным механизмом БПО (Библиотека подключаемого оборудования). В этой статье мы разберем пошагово, как заставить один сканер корректно обрабатывать как привычные штрихкоды EAN-13, так и коды маркировки DataMatrix.
Прежде чем приступать к настройке, проанализируем ситуацию. Конфигурация УТ 10.3 на последних релизах пытается использовать механизм Подключаемое оборудование. Однако программный код типовой конфигурации часто содержит фильтры, которые ожидают, что источником события будет строго СканерШтрихкода. Если ваш сканер определяется системой как InputDevice или имеет иное имя, механизм МенеджерОборудованияКлиент просто отбрасывает событие, не передавая его в обработку.
Работа сканера в режиме клавиатурного ввода (HID) крайне нежелательна при работе с DataMatrix, так как могут возникать проблемы с передачей служебных символов-разделителей (GS1). Мы рекомендуем следующие действия:
USB Serial Driver от производителя вашего сканера (например, Honeywell или Zebra).Диспетчере устройств Windows сканер отображается в разделе Порты (COM и LPT) и ему присвоен конкретный COM-порт.Перед тем как настраивать оборудование заново, необходимо полностью очистить систему от некорректных записей. Старые настройки в регистрах Торговое оборудование будут блокировать работу новых модулей.
Конфигуратор или через Функции технического специалиста откройте регистр сведений ТорговоеОборудование.Сканер штрихкод.Использовать подключаемое оборудование, сохраните настройки, а затем включите её снова. Это поможет сбросить кэшированные параметры конфигурации.Для стабильной работы в УТ 10.3 лучше всего использовать классический драйвер 1С:Сканеры штрихкода (старой версии, например 8.1.7.9), так как он обладает большей гибкостью по сравнению с современным Native API, который требует строгой настройки БПО.
1С:Сканеры штрихкода.COM-порт, который мы определили на первом этапе.DataMatrix и EAN-13 считываются успешно, значит, связка драйвер-сканер настроена корректно.Если после описанных действий сканер все еще не передает данные в форму документа, необходимо понимать, как именно 1С обрабатывает событие. В модулях УТ 10.3 реализована функция ОбработатьВнешнееСобытие, содержащая проверку:
// Пример фрагмента кода обработки события
Если ПолучитьФункциональнуюОпцию("ИспользоватьПодключаемоеОборудование")
И Источник = "СканерШтрихкода"
И (ТипЗнч(Клиент) = Тип("Форма") Или ТипЗнч(Клиент) = Тип("УправляемаяФорма")) Тогда
// Обработка через МенеджерОборудованияКлиент
КонецЕсли;
Мы видим, что если ваша переменная Источник не равна СканерШтрихкода, логика переходит к старому механизму ТОСервер. Если вы столкнулись с тем, что ни один из механизмов не срабатывает, возможно, потребуется внести корректировку в модуль, чтобы он корректно принимал ваш Источник (например, добавив проверку на InputDevice). Однако мы настоятельно рекомендуем сначала попробовать способ с установкой драйвера 1С:Сканеры штрихкода (не Native API), так как это часто снимает необходимость в доработке кода конфигурации.
Важное примечание: При выборе драйвера отдавайте предпочтение 1С:Сканеры штрихкода версии ScanOPOS. Это позволяет избежать жестких ограничений Native API и обеспечивает более предсказуемое поведение при работе со сканерами, которые могут передавать нестандартные идентификаторы источника.