Почему 1С не находит товар при сканировании Data Matrix и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Часто при переходе на маркировку товаров в аптеке или розничном магазине пользователи сталкиваются с проблемой: обычный штрихкод EAN-13 считывается корректно, а код маркировки Data Matrix — нет. Возникает закономерный вопрос: нужно ли настраивать сканер на «отсечение» лишних символов, чтобы программа видела только нужную часть кода? Давайте разберемся, как устроена работа с маркировкой в 1С:Розница, и почему ручное редактирование данных сканера — это путь к ошибкам.

Понимаем принцип работы Data Matrix

Важно уяснить главное: код маркировки (КМ) не является простым штрихкодом. Внутри Data Matrix зашита структура данных, соответствующая международному стандарту GS1. В нем содержится не только GTIN (идентификатор товара), но и серийный номер, ключ проверки и другие параметры, разделенные специальными служебными символами.

Система 1С при сканировании КМ не должна получать «обрезанную» строку. Напротив, она ожидает получить полный код, чтобы самостоятельно, используя встроенные алгоритмы парсинга, «выкусить» из него GTIN. Именно этот GTIN затем используется для поиска номенклатуры в справочнике Штрихкоды упаковок и товаров.

Основные шаги для настройки корректного сканирования

Для того чтобы 1С могла успешно идентифицировать товар по Data Matrix, выполним следующие действия:

  1. Проверка карточки номенклатуры: Убедитесь, что в карточке товара на закладке Дополнительно или в списке штрихкодов заполнен GTIN. Помните, что GTIN — это 14-значный код. Если у вас заведен только 13-значный EAN-13, система может не сопоставить их автоматически. Добавьте GTIN именно в формате 14 символов (иногда с ведущим нулем).
  2. Настройка оборудования: Не пытайтесь настраивать сканер на отсечение первых 13 символов. Сканер должен передавать весь код целиком. Убедитесь, что сканер переведен в режим эмуляции COM-порта (если используется драйвер 1С) или настроен на корректную передачу управляющих символов (разделителей). Если сканер передает спецсимволы некорректно, 1С не сможет распознать структуру кода.
  3. Привязка марки: В Рознице 2.3 реализован механизм привязки. Если вы сканируете новую марку, которой еще нет в базе, система предложит привязать ее к номенклатуре. В этот момент 1С сама запишет информацию в справочник Штрихкоды упаковок и товаров. После первой привязки последующее сканирование будет работать автоматически.

Диагностика проблем с помощью отладки

Если товар все равно не находится, воспользуйтесь стандартной обработкой Тест драйвера сканера штрихкода. Посмотрите на «сырые» данные, которые приходят в программу при сканировании.

Разберем, на что обратить внимание:

Почему нельзя «обрезать» код?

Попытки физически обрезать строку в настройках сканера приведут к тому, что вы потеряете остальные данные маркировки (серийный номер, криптохвост). Это сделает невозможным выполнение операций ввода в оборот или вывода из оборота через ИС МП (Честный знак). Вся логика 1С построена на том, что мы работаем с полным объектом данных Data Matrix.

Для программистов: если необходимо детально изучить процесс, посмотрите код модуля обработки сканирования, где вызываются методы работы с форматом GS1. Обычно это функции, которые анализируют входящую строку на наличие разделителей ASCII 29 (код GS) и извлекают подстроку по идентификаторам применения (01, 21 и т.д.).

Краткий чек-лист для проверки:

Соблюдение этих правил обеспечит корректную работу с маркировкой в аптеке и исключит ошибки при продаже товаров.

← На главную