При подключении торгового оборудования к конфигурациям на базе современных библиотек (в частности, 1С:Розница 2.2 на управляемых формах) часто возникает ситуация: сканер успешно считывает штрихкод в окне добавления нового товара, проходит внутренний тест в настройках оборудования, но при попытке поиска в РМК (Рабочем месте кассира) или документах выдает ошибку: «данные по коду не найдены». При этом на старых релизах или других конфигурациях (например, 1С:Управление торговлей 10.3) устройство может функционировать без сбоев.
Разберем подробнее, почему возникает такое поведение в среде БПО (Библиотеки подключаемого оборудования), проанализируем основные причины конфликта и настроим оборудование правильным способом.
Выясним, почему система считывает корректный штрихкод, но не может спозиционировать номенклатуру:
20, 21, 22). Если штучный товар имеет штрихкод, начинающийся на эти цифры, алгоритм 1С пытается выделить из него код и вес, а не ищет полное соответствие по регистру сведений ШтрихкодыНоменклатуры.]E0 для кода формата EAN-13). При тесте в строке могут отображаться только цифры, но в обработчик события попадает скрытый массив байт, что ломает поиск.ScanOPOS в современных управляемых интерфейсах приводит к ошибкам обработки асинхронных событий торгового оборудования.Перевод сканера в режим эмуляции COM-порта с использованием встроенного драйвера 1С:Сканеры штрихкода (NativeApi) является наиболее надежным стандартом для 1С, так как исключает влияние языка раскладки клавиатуры и скорости передачи символов.
Выполним настройку по шагам:
COM3).COM3), скорость (обычно 9600), а в поле Суффикс зададим значение 13 (символ возврата каретки CR).CR [13].Откроем Диспетчер устройств, найдем раздел Контроллеры USB -> Корневой USB-концентратор (USB Root Hub). В свойствах на вкладке Управление электропитанием снимем флажок «Разрешить отключение этого устройства для экономии энергии». Это предотвратит зависание сканера через 30–60 минут работы.
Если нет возможности использовать эмуляцию COM-порта, настроим сканер в режиме клавиатурного ввода без использования устаревших сторонних драйверов.
Разберем порядок действий:
CR (код #13). По умолчанию в большинстве сканеров этот суффикс включен.F7 или 150 программировать не нужно).30 до 75–100 мс. Это позволит 1С корректно склеивать все символы штрихкода при микрозадержках операционной системы.Если физическое подключение и тест устройства отрабатывают без ошибок, но ошибка «данные по коду не найдены» сохраняется, проанализируем параметры учета внутри конфигурации:
Перейдем в Администрирование -> Номенклатура (или Параметры учета). Проверим раздел настройки весовых штрихкодов. Если штрихкод обычного товара начинается, например, с цифр 20, а в программе префикс 20 закреплен за весовым товаром с плавающим весом, система не сможет найти совпадение в справочнике. Необходимо изменить префикс весового товара или перемаркировать продукцию.
В конфигурациях на управляемых формах идентификатор рабочего места генерируется автоматически на основании сетевого имени ПК и системного идентификатора пользователя. Если база запускалась под другой учетной записью или через RDP, создается новый элемент справочника РабочиеМеста. Сканер, привязанный к старому рабочему месту, не будет инициализировать обработчик внешнего события в текущей сессии.
Убедимся, что текущее рабочее место сеанса совпадает с тем, к которому привязано торговое оборудование.
В среде специалистов часто встречается рекомендация запрограммировать в память сканера передачу префикса F7 (код 150). Рассмотрим этот механизм:
Клавиша F7 в интерфейсе 1С предназначена для ручного вызова диалогового окна поиска по штрихкоду. Передача этого префикса сканером принудительно открывает диалог, куда последующими символами вставляется штрихкод. Однако такой подход является временным решением (костылем), так как на медленных компьютерах диалоговое окно может не успеть открыться вовремя, что приведет к потере первых символов штрихкода.
В типовых конфигурациях 1С на базе БПО штатный драйвер 1С:Сканеры штрихкода (NativeApi) перехватывает событие ввода целиком без необходимости ручного открытия диалоговых окон.