Многие пользователи систем 1С:Управление торговлей, 1С:Комплексная автоматизация и 1С:Бухгалтерия столкнулись с внезапным прекращением работы механизмов эмиссии кодов маркировки. При попытке отправить Заказ на эмиссию кодов маркировки СУЗ система выдает критическую ошибку: «Не указано значение параметра "Тип кода маркировки"». Ситуация осложняется тем, что в пользовательском интерфейсе многих релизов просто нет отдельного поля с таким названием, которое можно было бы заполнить вручную.
В этой статье мы подробно разберем причины возникновения этой ошибки и рассмотрим пошаговые алгоритмы её устранения, основываясь на опыте администраторов и рекомендациях разработчиков 1С.
Проанализируем ситуацию: корень проблемы кроется не во внутренних сбоях вашей базы данных, а во внешних изменениях. Оператор системы маркировки «Честный ЗНАК» (ГИС МТ) перевел Станцию управления заказами (СУЗ) на новую версию программного интерфейса — API v2.0. В этой версии параметры, которые ранее были необязательными или заполнялись сервером автоматически (например, тип кода GS1_DATAMATRIX), стали строго обязательными для передачи в теле запроса.
Поскольку ваша конфигурация 1С пытается взаимодействовать с ГИС МТ по старому протоколу, сервер маркировки отклоняет запрос, так как не получает требуемый идентификатор типа кода. Это особенно актуально для товарных групп «Молочная продукция», «Упакованная вода» и «Легкая промышленность».
Фирма 1С оперативно реагирует на такие изменения, выпуская исправления (патчи) еще до выхода официальных релизов конфигураций. Проверим наличие и установим необходимые исправления:
EF_00_....Важный момент: если у вас отключена автоматическая загрузка патчей, система не сможет самостоятельно «узнать» о новом формате API. После установки патча необходимо перезапустить сеанс работы с 1С.
Если установка патчей не помогает или конфигурация значительно устарела, необходимо выполнить полноценное обновление. Рассмотрим версии, в которых функционал работы с API 2.0 был стабилизирован:
При обновлении система обновляет метаданные справочников и логику формирования XML/JSON пакетов, отправляемых в «Честный ЗНАК», добавляя туда злополучный параметр Тип кода маркировки.
Иногда ошибка сохраняется из-за некорректно выбранной категории продукции. Система 1С определяет тип кода на основании настроек в справочнике Номенклатура. Проделаем следующие действия:
Молочная продукция или Обувная продукция.Если настройки верны, попробуем перевыбрать категорию (сначала поставить «Без особенностей учета», сохранить, а затем вернуть нужную категорию). Это заставит систему обновить внутренние кэшированные параметры для данной позиции.
Проанализируем параметры связи с сервером «Честного ЗНАКа». Параметр типа кода может зависеть от корректности идентификатора соединения. Выполним следующие шаги:
Идентификатор соединения (OMS ID).Рассмотрим ситуацию, когда обновление установлено, но старый документ Заказ на эмиссию кодов маркировки всё равно выдает ошибку. Это происходит потому, что структура документа была инициализирована до обновления.
Рекомендация: не пытайтесь перезаполнить или скопировать старый документ. Создайте абсолютно новый документ заказа, заново подберите в него номенклатуру и заполните все поля. В новом объекте программные обработчики 1С корректно проставят скрытые параметры типа кода маркировки (GS1_DATAMATRIX).
Если вы занимаетесь отладкой, обратите внимание на общий модуль, отвечающий за интеграцию с ИС МП (например, ИнтеграцияИСМП или МаркировкаТоваровГИСМТПереопределяемый). В момент формирования структуры заказа программный код должен обращаться к функции определения типа кода. Пример логики, которую добавляют патчи:
// Пример логики определения типа кода
ТипКодаМаркировки = ПрефиксыИСМП.ПолучитьТипКодаДляКатегории(КатегорияПродукции);
Если ТипКодаМаркировки = Неопределено Тогда
ТипКодаМаркировки = "GS1_DATAMATRIX"; // Принудительная установка для API 2.0
КонецЕсли;
СтруктураПараметров.Вставить("contactType", ТипКодаМаркировки);
Проанализировав эти шаги, мы видим, что проблема решается системным подходом к обновлению программного обеспечения. Главное — помнить, что интеграция с государственными системами требует постоянного контроля актуальности релизов 1С и установленных патчей.