При работе в программе 1С:Управление торговлей 11.4 пользователи часто сталкиваются с ситуацией, когда сканер штрихкодов (например, Атол SB2108 Plus) исправно считывает маркированную продукцию, но отказывается находить обычные, немаркируемые товары в Рабочем месте кассира (РМК). Проблема осложняется в распределенных информационных базах (РИБ), где поиск по штрихкоду может просто закрываться без выдачи результата или ошибки.
В этой статье мы подробно разберем причины такого поведения системы, проанализируем взаимосвязь настроек весового товара, префиксов узлов РИБ и признаков маркировки, а также составим пошаговый план решения проблемы. Для профилактики ошибок рекомендуется выполнять контроль заполнения полей маркированного товара.
Одной из самых неочевидных причин того, почему 1С "игнорирует" считанный штрихкод, является конфликт с настройками весового товара. Разберем механизм работы системы: в настройках НСИ и администрирование — Номенклатура — Настройки штрихкодирования задаются префиксы для разных типов кодов.
Если первая цифра внутреннего штрихкода (например, "2") совпадает с префиксом весового товара, 1С перестает искать этот код в регистре ШтрихкодыНоменклатуры. Вместо этого программа пытается "разобрать" его по маске весового товара: [Префикс][Код товара][Вес][Контрольный символ]. Если структура кода не соответствует этой маске, алгоритм поиска выдает внутреннюю ошибку, которая в интерфейсе РМК проявляется как мгновенное закрытие окна поиска без добавления товара.
Проанализируем ситуацию: если в карточке номенклатуры штрихкод был ошибочно сгенерирован как "Весовой", система будет ожидать от сканера код определенной длины с информацией о массе. Для исправления ситуации выполним следующие действия:
При использовании РИБ крайне важно правильно настроить префиксы внутренних штрихкодов для каждого узла. Если в Центральной Базе (ЦБ) и Периферийной Базе (ПБ) установлены одинаковые префиксы, система может генерировать дублирующие коды или некорректно обрабатывать штрихкоды, пришедшие по синхронизации.
Рассмотрим правильную схему настройки:
Это гарантирует, что штрихкоды, созданные локально в магазине, не будут пересекаться с кодами из центрального офиса. Важно понимать, что признак маркировки продукции накладывает дополнительные требования к проверке штрихкодов. Выясним причину: если штрихкод был сгенерирован ДО включения функциональных опций маркировки и настройки префиксов, он может содержать структуру, которую новые алгоритмы РМК считают некорректной.
Если при нажатии F7 (Поиск по штрихкоду) или при сканировании окно поиска просто закрывается, это может свидетельствовать о неверной настройке суффикса сканера. Большинство сканеров (включая Атол SB2108) по умолчанию работают в режиме эмуляции клавиатуры и после передачи кода посылают символ Enter (код 13).
Если в 1С в настройках подключаемого оборудования не указан суффикс #13, программа воспринимает нажатие Enter не как окончание ввода кода, а как команду "ОК" для закрытия окна. В результате окно закрывается быстрее, чем алгоритм поиска успевает отработать. Рассмотрим шаги по устранению:
13 (CR).Для глубокого понимания проблемы программисту стоит проанализировать работу модуля, отвечающего за внешние события. В момент сканирования срабатывает процедура, которая должна определить тип считанных данных. Посмотрим на примерную логику обработки в общем модуле:
Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные)
// Данные - это считанный штрихкод
ПараметрыШтрихкода = ШтрихкодированиеСервер.РазобратьШтрихкод(Данные);
Если ПараметрыШтрихкода.ТипШтрихкода = ПланВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
// Поиск товара в регистре
НайденныйТовар = РегистрыСведений.ШтрихкодыНоменклатуры.НайтиПоШтрихкоду(Данные);
// Если НайденныйТовар пустой, 1С может просто закрыть форму
КонецЕсли;
КонецПроцедуры
Если сканер передает лишние символы или штрихкод не соответствует формату EAN-13, функция РазобратьШтрихкод может вернуть ошибку или неверный тип. Особенно это актуально для маркируемой продукции, где система сначала пытается найти код маркировки (DataMatrix), а уже потом обычный штрихкод.
Чтобы восстановить работоспособность сканирования для немаркируемой продукции, выполним следующие действия:
Проанализировав ситуацию комплексно — от физических настроек луча сканера до логики префиксов в программном коде 1С — мы сможем добиться стабильной работы системы как с маркированным, так и с обычным товаром.