При работе с маркировкой упакованной воды в программах 1С:Комплексная автоматизация, 1С:ERP или 1С:Управление торговлей пользователи часто сталкиваются с критической ошибкой при сохранении результатов проверки или подбора продукции. Текст ошибки обычно выглядит следующим образом: «Не удалось разобрать код маркировки: (02)04600494693359(37)1 Код маркировки не соответствует ни одному шаблону». Данная ситуация блокирует возможность оформления документов «Приобретение товаров и услуг», «Акт о расхождениях» или «Реализация товаров и услуг».
Проанализируем причины возникновения этой проблемы и разберем пошагово методы её решения, опираясь на технические особенности работы библиотеки интеграции с ИСМП.
Для начала рассмотрим сам код, вызвавший ошибку: (02)04600494693359(37)1. Это типичный код для объемно-сортового учета (ОСУ) — есть инструмент проверки и инвентаризации кодов ОСУ. Разберем его составные части:
Ошибка возникает из-за того, что программный модуль ШтрихкодированиеИС при попытке сопоставить эту строку с известными ему шаблонами не находит совпадения. В стандартных настройках система часто ожидает код потребительской упаковки с идентификатором (01) и наличием «криптохвоста», либо жестко ограничена шаблонами для конкретных видов продукции, хотя иногда требуется печать кодов маркировки с криптохвостом напрямую.
Выясним причину несоответствия в настройках самой номенклатуры. Проанализируем карточку товара и присоединенный к ней Вид номенклатуры. Основное внимание следует уделить гиперссылке «Настроить» в разделе маркировки (здесь важно осуществлять контроль заполнения полей маркированного товара).
Для корректной работы с водой в режиме ОСУ должны быть соблюдены следующие условия:
Если в настройках по ошибке указан «Экземплярный учет», система будет пытаться найти в коде серийный номер и криптографический ключ проверки. Поскольку в коде ОСУ их нет, 1С выдаст ошибку шаблона.
Рассмотрим ситуацию, когда настройки политики верны, но ошибка сохраняется. Проанализируем регистр штрихкодов. Часто проблема кроется в том, что GTIN, зашитый в код маркировки, не совпадает со штрихкодом, зарегистрированным в базе для данной позиции, особенно если используется загрузка штрихкодов номенклатуры из внешних систем.
Особое внимание уделите лидирующим нулям. В коде маркировки GTIN всегда дополняется до 14 знаков. Если в карточке номенклатуры штрихкод записан как 13-значный (EAN-13), например, 4600494693359, то парсер может не сопоставить его с 04600494693359 из кода маркировки.
Посмотрим на рекомендации из практики: если в системе ведется учет по партиям, необходимо открыть документ оприходования, найти там проблемную номенклатуру и проверить привязанную к ней партию. Штрихкод в карточке партии должен строго соответствовать GTIN из кода маркировки.
Если типовые настройки не помогают, проанализируем ситуацию с точки зрения кода. Проблема может заключаться в том, что в используемой версии конфигурации (например, КА 2.5.11.x) отсутствуют необходимые шаблоны в модуле ШтрихкодированиеИС для обработки идентификатора (02) в сочетании с (37).
Рассмотрим структуру шаблона, который ожидает система для корректного разбора:
КодСтраны (2 символа) + Разделитель1 (1 символ) + Секция6 (6 символов) + Разделитель2 (1 символ) + Секция10 (10 символов)
В некоторых случаях помогает временное переключение вида продукции на «Товары из натурального меха» в момент отладки, так как это заставляет систему использовать другие алгоритмы разбора, но это является «костылем». Правильным решением будет обновление конфигурации или установка соответствующих патчей от 1С. Разработчики регулярно выпускают исправления для модулей ЭлектронноеВзаимодействиеИСМП и ИнтеграцияИСМПУТ, которые расширяют список поддерживаемых регулярных выражений для ОСУ.
Выясним, как именно код попадает в систему. Если вы используете сканер штрихкодов, он должен быть настроен корректно для передачи спецсимволов. Коды GS1-128 содержат невидимый символ-разделитель FNC1 (или GS).
Если сканер работает в режиме эмуляции клавиатуры (HID), он может «проглатывать» эти разделители, превращая код в сплошную строку цифр. В этом случае 1С не сможет определить, где заканчивается GTIN и начинается количество. Рекомендуется перевести сканер в режим эмуляции COM-порта (USB-CDC) и убедиться, что в драйвере торгового оборудования 1С установлены верные параметры префиксов и суффиксов.
Часто ошибка возникает при попытке отразить результаты проверки в документе «Акт о расхождениях после приемки» — для этого подойдёт модуль контроля кодов маркировки при приемке и отгрузке. Проанализируем процедуру СоздатьПоРезультатамПроверкиИПодбораИСМП в модуле АктОРасхожденияхПослеПриемкиЛокализация. Система пытается нормализовать код маркировки для передачи в УПД.
Если вы столкнулись с ошибкой на этом этапе, попробуйте следующее:
Если ошибка не уходит, потребуется отладка. Поскольку разбор кодов часто выполняется в фоновом задании, при поиске ошибки в конфигураторе необходимо:
ШтрихкодированиеИС в функции РазобратьШтрихкод.ПараметрыРазбора.Пример того, как система должна видеть параметры разбора для кода ОСУ:
// Примерная структура параметров разбора в коде 1С
ПараметрыРазбора = Новый Структура;
ПараметрыРазбора.Вставить("ИдентификаторПрименения1", "02");
ПараметрыРазбора.Вставить("Значение1", "04600494693359");
ПараметрыРазбора.Вставить("ИдентификаторПрименения2", "37");
ПараметрыРазбора.Вставить("Значение2", "1");
Если вы видите, что переменная НормализованныйКодМаркировки в модуле ИнтеграцияИСМПУТ остается пустой или вызывает исключение, значит, текущая версия БИМ (Библиотеки интеграции с маркирвкой) не поддерживает данную комбинацию идентификаторов для выбранного вида продукции. В этом случае единственным надежным решением будет обновление библиотеки или всей конфигурации до актуального релиза, где исправлены ошибки разбора шаблонов ОСУ для воды.