При автоматизации кассового узла или склада типовая задача — обеспечить максимально быструю регистрацию товаров. Кассир или кладовщик должен отсканировать штрихкод, после чего товар обязан мгновенно появиться в табличной части документа, а каждый повторный скан той же позиции должен увеличивать ее количество на единицу. Однако на практике часто возникает ситуация: сканер настроен и подключен, но номенклатура ищется только по нажатию кнопки «Поиск по штрихкоду» (клавиша F7). Разберем причины такого поведения платформы 1С и рассмотрим по шагам, как перевести сканирование в полностью автоматический режим.
По умолчанию большинство USB-сканеров поставляются настроенными в режиме эмуляции клавиатуры (HID-устройство). В этом режиме операционная система и платформа 1С воспринимают сканер как человека, который быстро печатает цифры на физической клавиатуре. Если в момент считывания курсор не установлен в специальное поле поиска или не открыто диалоговое окно по кнопке F7, 1С не знает, в какой именно объект направить поступившие символы.
Существует два пути решения задачи: перевод устройства в режим виртуального последовательного порта (COM-порт) либо корректное программирование управляющего префикса в память самого сканера.
Это самый надежный и промышленный стандарт подключения торгового оборудования к 1С. В режиме Virtual COM Port сканер передает данные напрямую через драйвер оборудования, генерируя платформенное внешнее событие независимо от того, где находится курсор мыши или фокус ввода.
Разберем по шагам порядок настройки:
USB Serial (или USB CDC-ACM).COM3).При таком подключении в модуле формы или глобальном обработчике платформа автоматически перехватывает событие через предопределенную процедуру ОбработкаВнешнегоСобытия. Типовой механизм 1С при получении штрихкода находит номенклатуру: если строка с товаром уже присутствует в табличной части, счетчик количества увеличивается на единицу, если нет — добавляется новая строка.
Если перевести сканер в режим COM-порта невозможно (например, отсутствуют драйверы для конкретной ОС или сканер работает по протоколу Bluetooth без поддержки SPP), можно заставить работать и клавиатурный режим. Главная ошибка разработчиков заключается в попытке прописать префикс только в настройках программы в 1С. Этого недостаточно: префикс должен посылать сам сканер перед отправкой цифр штрихкода.
Проанализируем правильный алгоритм настройки:
Enter или код CR / 13). Без завершающего суффикса драйвер 1С не сможет понять, где заканчивается штрихкод.Если после выполнения настроек сканер по-прежнему не добавляет товар, проверим логику работы конфигурации в режиме отладки. В конфигурациях на обычных формах (таких как «1С:Комплексная автоматизация» ред. 1.1) за обработку отвечает общий модуль торгового оборудования.
Поставим точку останова в процедуре общего модуля:
Процедура ВвестиШтрихкод(Штрихкод, Форма) Экспорт
// Точка останова
Если ПустаяСтрока(Штрихкод) Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
Проанализируем поведение системы:
РаботаСТорговымОборудованием.ВвестиШтрихкод() срабатывает, проверим значение переменной Штрихкод. В нее должны попадать чистые цифры кода без лишних непечатных символов и префиксов.Использование режима виртуального COM-порта полностью исключает зависимость от префиксов и фокуса ввода, гарантируя безошибочный подсчет количества номенклатуры при каждом сканировании.