Как исправить ошибку «Код маркировки не соответствует ни одному шаблону» при объемно-сортовом учете воды в 1С?

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

При работе с маркировкой упакованной воды в программах 1С:Комплексная автоматизация, 1С:ERP или 1С:Управление торговлей пользователи часто сталкиваются с критической ошибкой при сохранении результатов проверки или подбора продукции. Текст ошибки обычно выглядит следующим образом: «Не удалось разобрать код маркировки: (02)04600494693359(37)1 Код маркировки не соответствует ни одному шаблону». Данная ситуация блокирует возможность оформления документов «Приобретение товаров и услуг», «Акт о расхождениях» или «Реализация товаров и услуг».

Проанализируем причины возникновения этой проблемы и разберем пошагово методы её решения, опираясь на технические особенности работы библиотеки интеграции с ИСМП.

Разбор структуры кода маркировки (GS1-128)

Для начала рассмотрим сам код, вызвавший ошибку: (02)04600494693359(37)1. Это типичный код для объемно-сортового учета (ОСУ) — есть инструмент проверки и инвентаризации кодов ОСУ. Разберем его составные части:

Ошибка возникает из-за того, что программный модуль ШтрихкодированиеИС при попытке сопоставить эту строку с известными ему шаблонами не находит совпадения. В стандартных настройках система часто ожидает код потребительской упаковки с идентификатором (01) и наличием «криптохвоста», либо жестко ограничена шаблонами для конкретных видов продукции, хотя иногда требуется печать кодов маркировки с криптохвостом напрямую.

Шаг 1. Проверка политики учета маркируемой продукции

Выясним причину несоответствия в настройках самой номенклатуры. Проанализируем карточку товара и присоединенный к ней Вид номенклатуры. Основное внимание следует уделить гиперссылке «Настроить» в разделе маркировки (здесь важно осуществлять контроль заполнения полей маркированного товара).

Для корректной работы с водой в режиме ОСУ должны быть соблюдены следующие условия:

  1. Тип номенклатуры должен соответствовать виду продукции «Упакованная вода» (для других категорий, например, одежды, могут потребоваться технические карты для Национального каталога) — для этого подойдёт интеграция и ведение учета воды в 1С.
  2. В политике учета маркируемой продукции для соответствующей операции (например, «Приемка») должен быть выбран способ учета «Объемно-сортовой».

Если в настройках по ошибке указан «Экземплярный учет», система будет пытаться найти в коде серийный номер и криптографический ключ проверки. Поскольку в коде ОСУ их нет, 1С выдаст ошибку шаблона.

Шаг 2. Анализ штрихкодов номенклатуры и партий

Рассмотрим ситуацию, когда настройки политики верны, но ошибка сохраняется. Проанализируем регистр штрихкодов. Часто проблема кроется в том, что GTIN, зашитый в код маркировки, не совпадает со штрихкодом, зарегистрированным в базе для данной позиции, особенно если используется загрузка штрихкодов номенклатуры из внешних систем.

Особое внимание уделите лидирующим нулям. В коде маркировки GTIN всегда дополняется до 14 знаков. Если в карточке номенклатуры штрихкод записан как 13-значный (EAN-13), например, 4600494693359, то парсер может не сопоставить его с 04600494693359 из кода маркировки.

Посмотрим на рекомендации из практики: если в системе ведется учет по партиям, необходимо открыть документ оприходования, найти там проблемную номенклатуру и проверить привязанную к ней партию. Штрихкод в карточке партии должен строго соответствовать GTIN из кода маркировки.

Шаг 3. Программная настройка шаблонов штрихкодов

Если типовые настройки не помогают, проанализируем ситуацию с точки зрения кода. Проблема может заключаться в том, что в используемой версии конфигурации (например, КА 2.5.11.x) отсутствуют необходимые шаблоны в модуле ШтрихкодированиеИС для обработки идентификатора (02) в сочетании с (37).

Рассмотрим структуру шаблона, который ожидает система для корректного разбора:

КодСтраны (2 символа) + Разделитель1 (1 символ) + Секция6 (6 символов) + Разделитель2 (1 символ) + Секция10 (10 символов)

В некоторых случаях помогает временное переключение вида продукции на «Товары из натурального меха» в момент отладки, так как это заставляет систему использовать другие алгоритмы разбора, но это является «костылем». Правильным решением будет обновление конфигурации или установка соответствующих патчей от 1С. Разработчики регулярно выпускают исправления для модулей ЭлектронноеВзаимодействиеИСМП и ИнтеграцияИСМПУТ, которые расширяют список поддерживаемых регулярных выражений для ОСУ.

Шаг 4. Настройка оборудования (сканера)

Выясним, как именно код попадает в систему. Если вы используете сканер штрихкодов, он должен быть настроен корректно для передачи спецсимволов. Коды GS1-128 содержат невидимый символ-разделитель FNC1 (или GS).

Если сканер работает в режиме эмуляции клавиатуры (HID), он может «проглатывать» эти разделители, превращая код в сплошную строку цифр. В этом случае 1С не сможет определить, где заканчивается GTIN и начинается количество. Рекомендуется перевести сканер в режим эмуляции COM-порта (USB-CDC) и убедиться, что в драйвере торгового оборудования 1С установлены верные параметры префиксов и суффиксов.

Шаг 5. Работа с Актом о расхождениях

Часто ошибка возникает при попытке отразить результаты проверки в документе «Акт о расхождениях после приемки» — для этого подойдёт модуль контроля кодов маркировки при приемке и отгрузке. Проанализируем процедуру СоздатьПоРезультатамПроверкиИПодбораИСМП в модуле АктОРасхожденияхПослеПриемкиЛокализация. Система пытается нормализовать код маркировки для передачи в УПД.

Если вы столкнулись с ошибкой на этом этапе, попробуйте следующее:

  1. Очистите таблицу «Штрихкоды упаковок» в исходном документе поступления.
  2. Проверьте, нет ли в списке считанных кодов «мусорных» данных (случайно считанных обычных штрихкодов EAN-13).
  3. Перезапустите процесс проверки и подбора, убедившись, что в форме проверки выбрана категория «Упакованная вода (ОСУ)».

Техническая отладка для программиста

Если ошибка не уходит, потребуется отладка. Поскольку разбор кодов часто выполняется в фоновом задании, при поиске ошибки в конфигураторе необходимо:

  1. Включить автоматическое подключение к фоновым заданиям (Отладка -> Настройка отладки).
  2. Установить точку останова в общем модуле ШтрихкодированиеИС в функции РазобратьШтрихкод.
  3. Проанализировать содержимое переменной ПараметрыРазбора.

Пример того, как система должна видеть параметры разбора для кода ОСУ:


// Примерная структура параметров разбора в коде 1С
ПараметрыРазбора = Новый Структура;
ПараметрыРазбора.Вставить("ИдентификаторПрименения1", "02");
ПараметрыРазбора.Вставить("Значение1", "04600494693359");
ПараметрыРазбора.Вставить("ИдентификаторПрименения2", "37");
ПараметрыРазбора.Вставить("Значение2", "1");

Если вы видите, что переменная НормализованныйКодМаркировки в модуле ИнтеграцияИСМПУТ остается пустой или вызывает исключение, значит, текущая версия БИМ (Библиотеки интеграции с маркирвкой) не поддерживает данную комбинацию идентификаторов для выбранного вида продукции. В этом случае единственным надежным решением будет обновление библиотеки или всей конфигурации до актуального релиза, где исправлены ошибки разбора шаблонов ОСУ для воды.

← На главную