При работе с маркированным товаром, таким как моторные масла, обувь или одежда, пользователи часто сталкиваются с системным сообщением «Отсутствует полный код маркировки». Ошибка коварна тем, что она может проявляться выборочно: одна банка масла сканируется без проблем, а на другой (той же марки) программа выдает отказ. В этой статье мы подробно разберем причины возникновения этой ситуации, проанализируем механизмы работы 1С с маркировкой и найдем способ окончательного решения проблемы.
Первым делом нам необходимо выяснить, на каком этапе происходит сбой. Процесс попадания кода в программу состоит из двух ключевых стадий:
Если ошибка возникает только в 1С, а сторонние утилиты (например, блокнот или специализированные тестовые программы) показывают полную строку кода с разделителями, значит, проблема кроется в настройках программы или накопленных «битых» данных.
Для диагностики сканера, работающего в режиме COM-порта, рекомендуется использовать специализированные утилиты для мониторинга портов. Мы должны убедиться, что сканер передает спецсимвол GS (ASCII 29), который разделяет группы данных в коде маркировки. Если сканер настроен в режиме клавиатуры (HID), этот символ часто теряется или подменяется, что и приводит к обрезке кода.
Рассмотрим структуру кода маркировки для моторных масел. Он должен содержать:
Если сканер в режиме эмуляции клавиатуры настроен неверно, 1С получает «кашу» из символов, которую не может интерпретировать как полный код маркировки.
Проанализируем внутреннюю механику 1С. В конфигурациях «Розница 2.3», «Управление торговлей 11» и «ERP» существует технический регистр сведений — Пул кодов маркировки СУЗ. Рассмотрим подробнее, зачем он нужен.
Этот регистр выполняет роль кэша. Когда вы сканируете марку, система обращается к нему, чтобы проверить, не получала ли она полные данные об этом коде ранее. Это ускоряет работу, избавляя программу от постоянных запросов к серверу «Честного Знака» (ГИС МТ). Однако здесь и затаилась ловушка.
Как происходит порча данных:
Пул кодов маркировки СУЗ, где поле Полный код остается пустым.Чтобы «победить» ошибку, нам нужно действовать комплексно: очистить кэш и перенастроить оборудование.
Выясним, есть ли в вашей базе некорректные записи. Для этого выполним следующие действия:
Пул кодов маркировки СУЗ.GTIN и Серийный номер, но отсутствует значение в колонке Полный код.Чтобы ситуация не повторилась, переведем сканер (например, Atol SB2108 Plus) в режим Native COM. Это единственный надежный способ работы с маркировкой. Разберем по шагам:
NONE или убедитесь, что драйвер 1С (NativeApi) корректно перехватывает разделители.Посмотрим на настройки драйвера оборудования. В современных релизах 1С используется библиотека 1С:Сканеры штрихкода (NativeApi). Убедитесь, что версия драйвера актуальна. Нередко в распределенных информационных базах (РИБ) возникает ситуация, когда на центральном узле компонента обновлена, а на периферийной кассе осталась старой. Это может приводить к тому, что на одной точке всё работает, а на другой — нет.
Проанализируем специфику товара. Коды маркировки на канистрах масла часто имеют большую плотность печати и могут быть длиннее, чем на сигаретных пачках. Для корректной работы убедитесь, что:
Ошибка «Отсутствует полный код маркировки» — это в 90% случаев проблема «грязного» кэша в базе данных 1С. После того как мы очистили регистр Пул кодов маркировки СУЗ и обеспечили прямую передачу данных через COM-порт, программа начнет корректно обрабатывать каждую марку. Помните: использование сканера в режиме клавиатуры при работе с маркировкой — это мина замедленного действия, которая рано или поздно приведет к блокировке продаж из-за некорректных записей в регистрах.