При подключении торгового оборудования к 1С системные администраторы и специалисты по автоматизации нередко сталкиваются с ситуацией: сканер штрихкодов (например, популярный Zebra/Symbol LS2208) подключен через интерфейс RS-232 (или виртуальный COM-порт), успешно проходит опрос в утилите драйвера (АТОЛ ДТО или ScanOPOS), издает звуковой сигнал при считывании, однако при открытии документов или форм подбора в 1С реакция на сканирование полностью отсутствует. Разберем по шагам, почему так происходит и как правильно настроить оборудование для корректной передачи данных.
Проанализируем механизм взаимодействия 1С с COM-сканерами. В отличие от режима эмуляции клавиатуры (HID), где символы штрихкода просто печатаются в активное поле ввода, работа через последовательный порт строится на генерации платформенного внешнего события. В 1С 7.7 и 8.x за это отвечает предопределенная процедура:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
// Обработка полученного штрихкода
КонецПроцедуры
Драйвер торгового оборудования принимает поток байт из COM-порта в свой внутренний буфер. Чтобы драйвер понял, что передача штрихкода завершена, и вызвал событие в 1С, ему необходим специальный символ-разделитель — суффикс (обычно это символ возврата каретки CR / код #13 или перевод строки CRLF / коды #13 #10). Если сканер штрихкода отправляет только само «тело» кода без суффикса, драйвер держит полученную строку в буфере в ожидании конца пакета данных либо сбрасывает ее по таймауту. В результате в тесте драйвера код может отображаться, но в конфигурацию 1С событие так и не поступает.
Для сканеров Symbol / Zebra LS2208 настройка управляющих символов выполняется путем считывания сервисных штрихкодов из официального руководства пользователя (Product Reference Guide):
<DATA>). Необходимо сосканировать управляющий штрихкод опций сканирования (Scan Options) в режиме <DATA><SUFFIX>.Enter (Carriage Return) последовательно считываем цифры 1, 0, 1, 3 (или 7, 0, 1, 3 в зависимости от таблицы кодировки в мануале).Также для моделей Zebra настройку можно выполнить через специализированную утилиту 123Scan, подключив сканер к ПК по RS-232 или USB-COM.
После программирования самого устройства проверим настройки со стороны драйвера:
ScanOPOS).#13 или CR).9600), битность данных (8), четность (None) и стоповые биты (1).100-1500 мс (особенно актуально при работе через терминальный сервер RDP, где сетевые задержки могут разрывать передачу пакета).Если работа ведется на удаленном рабочем столе, важно исключить аппаратные и программные коллизии портов:
COM1, необходимо перенаправить их на разные виртуальные номера (например, COM10, COM11) через системную команду change port или скрипты входа.CLIENTNAME), чтобы настройки одного оператора не перезаписывали параметры других.Запустим 1С и протестируем обработку событий: