Работа со штрихкодами в 1С:ERP 2.4 — это стандартный функционал, который значительно ускоряет поиск документов и складские операции. Однако часто специалисты сталкиваются с ситуацией, когда штрихкод на печатной форме есть, сканер подключен и успешно «пикает», но в списке документов ничего не происходит. Рассмотрим подробно, как устроен этот механизм и как диагностировать причины его отказа.
Для начала разберем, что именно система закладывает в штрихкод документа. В отличие от товаров, где используется EAN-13, для документов 1С:ERP (и других решений на базе «1С:Управление торговлей 11») генерирует штрихкод, в котором закодирован уникальный идентификатор ссылки (UUID или GUID). Это позволяет системе однозначно найти документ в базе, даже если его номер или дата были изменены.
Когда вы открываете форму списка документов, она инициализируется как «потребитель» событий от подключаемого оборудования. Проанализируем типичный программный код, который отвечает за перехват данных со сканера в управляемых формах:
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Проверяем, что событие пришло от торгового оборудования
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
// Преобразуем данные и вызываем процедуру поиска
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Если это событие не отрабатывает, значит, цепочка передачи данных от физического устройства к программному интерфейсу 1С где-то обрывается. Выясним, на каком этапе это происходит.
Первым делом проверим, как именно сканер передает данные в операционную систему. Проанализируем ситуацию, когда сканер работает в режиме эмуляции клавиатуры (самый распространенный вариант для USB-сканеров):
Важный нюанс: если сканер имитирует клавиатуру, крайне важна текущая раскладка. Если в коде есть буквы, а включена русская раскладка, данные могут исказиться. Рассмотрим переключение сканера в режим Virtual COM Port, если это поддерживает ваше устройство. В режиме COM-порта 1С получает данные напрямую через драйвер, игнорируя фокус ввода и раскладку клавиатуры.
Это «узкое место», на котором спотыкаются многие администраторы. Чтобы 1С поняла, что поток символов от клавиатуры — это именно штрихкод, а не случайный ввод пользователя, драйвер ищет специальный символ завершения, называемый суффиксом.
Рассмотрим ситуацию из практики: в настройках подключаемого оборудования в 1С по умолчанию часто стоит суффикс CR (возврат каретки, код 13). Однако современные сканеры (например, Honeywell или Zebra) могут быть настроены на передачу суффикса TAB (код 9).
Посмотрим, как выполнить диагностику в самой 1С:
Если в тесте вы видите 'TAB', а в основных настройках драйвера 1С указано 'CR', событие ScanData никогда не возникнет. Система будет просто ждать символ CR, считая, что пользователь еще продолжает ввод. Необходимо привести суффикс в настройках 1С в соответствие с тем, что выдает «железо».
Если автоматический перехват в списке документов по каким-то причинам настроить не удается (например, из-за конфликтов драйверов в терминальной сессии), в 1С:ERP существует альтернативный способ. Разберем его по шагам:
Если база 1С развернута на сервере, а сканер подключен к локальному компьютеру, мы можем столкнуться с проблемой «дребезга» или потери символов. Рассмотрим, как проанализировать эту ситуацию:
При передаче через RDP пакеты данных могут приходить с задержкой. Если сканер передает символы слишком быстро, драйвер 1С может решить, что это разные события ввода, и не соберет их в единый штрихкод. Выясним пути решения:
Inter-character delay (задержка между символами) в значение 10-20 мс.Если вы программист и хотите убедиться, что форма вообще «слушает» сканер, проанализируйте метод открытия формы. В 1С:ERP 2.4 подключение оборудования обычно происходит в процедуре ПриОткрытии через вызов глобального модуля:
// Пример логики подключения в БПО
МенеджерОборудованияКлиент.ПодключитьОборудованиеПриОткрытииФормы(ЭтаФорма, "СканерШтрихкода");
Если этот метод не вызывается (например, форма сильно кастомизирована), то ОбработкаОповещения не будет получать события от оборудования. Проверьте, включена ли функциональная опция использования торгового оборудования в константах системы. Для решения проблем с отвязкой оборудования из-за смены сеанса можно использовать инструмент для восстановления и смены рабочего места.
Для успешного поиска документа по штрихкоду в 1С:ERP 2.4 нам необходимо:
Проанализировав эти моменты, вы сможете настроить стабильную работу складских и офисных служб с документами предприятия.