Как исправить ошибку "Неизвестный статус кода маркировки: EMPTY" в 1С:УТ 11 при проверке табачной продукции?

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

При работе с маркированной табачной продукцией в системе 1С:Управление торговлей 11 (1С:УТ 11) пользователи могут столкнуться с ошибкой "Неизвестный статус кода маркировки: EMPTY" при попытке проверить поступившую продукцию. Эта проблема обычно возникает при взаимодействии с государственной информационной системой маркировки товаров "Честный ЗНАК" (ЧЗ) и может касаться всех поставщиков и номенклатуры. Давайте подробно разберем, почему возникает эта ошибка и как ее эффективно устранить.

Анализируем причину возникновения ошибки "EMPTY"

Первоначально, пользователи замечают, что после нажатия ссылки "Проверить поступившую табачную продукцию" в документе приобретения, система выдает сообщение об ошибке, указывающее на неопределенный статус кода маркировки — "EMPTY". Эта ситуация является критичной, так как блокирует процесс приемки товара и дальнейшую работу с ним. Как правило, такие ошибки возникают не из-за неправильных действий пользователя, а из-за изменений во взаимодействии с внешней системой.

Одной из наиболее частых причин подобных сбоев является несоответствие версий API (Application Programming Interface) между вашей учетной системой 1С и серверами "Честного ЗНАКа". Система маркировки постоянно развивается, и ее API регулярно обновляется. Это означает, что старые версии программного обеспечения 1С могут не распознавать новые статусы, которые начинает возвращать ЧЗ. Именно так произошло со статусом "EMPTY". На момент возникновения проблемы, конфигурация 1С не содержала логики для обработки этого конкретного значения статуса, что приводило к генерации исключения "Неизвестный статус кода маркировки".

Разбираем решение: Применение патча 1С

К счастью, фирма "1С" оперативно реагирует на такие изменения и выпускает специальные патчи для своих типовых конфигураций. В нашем случае, для устранения ошибки "Неизвестный статус кода маркировки: EMPTY" был выпущен патч с идентификатором EF_00_00457774 от 01.07.2022. Этот патч предназначен для добавления в конфигурацию 1С:УТ 11 необходимой логики по обработке нового статуса.

Рассмотрим подробнее, что именно изменилось в коде благодаря этому патчу. Основная суть заключается в том, что в функцию, отвечающую за сопоставление строкового представления статуса кода маркировки, полученного от "Честного ЗНАКа", с внутренними перечислениями 1С, была добавлена новая ветка обработки.

Представим себе фрагмент кода, который отвечает за распознавание статусов. До патча, если система "Честный ЗНАК" возвращала статус, не предусмотренный в списке, генерировалось исключение. Патч же добавляет обработку статуса "EMPTY", приравнивая его к значению "Неопределен". Это позволяет системе корректно обрабатывать ситуацию, не прерывая работу программы.

Вот как может выглядеть измененный участок кода в модуле, отвечающем за работу с маркировкой (например, в функции, которая преобразует строковый статус от ЧЗ в значение перечисления Перечисления.СтатусыКодовМаркировкиМОТП):


// ... предыдущие ветки обработки статусов ...

ИначеЕсли ЗначениеПоиска = "UNDEFINED" Тогда
    Возврат Перечисления.СтатусыКодовМаркировкиМОТП.Неопределен;
ИначеЕсли ЗначениеПоиска = "EMPTY" Тогда // <-- Добавлена эта строка
    Возврат Перечисления.СтатусыКодовМаркировкиМОТП.Неопределен; // <-- И эта строка
ИначеЕсли ЗначениеПоиска = "ELIMINATED" Тогда
    Возврат Перечисления.СтатусыКодовМаркировкиМОТП.НеИспользован;
КонецЕсли;

ВызватьИсключение
    СтрШаблон(
        НСтр("ru = 'Неизвестный статус кода маркировки: %1'"),
        ЗначениеПоиска);

Мы видим, что добавлена простая, но критически важная конструкция ИначеЕсли ЗначениеПоиска = "EMPTY" Тогда Возврат Перечисления.СтатусыКодовМаркировкиМОТП.Неопределен;. Эта строка указывает системе 1С, что если от "Честного ЗНАКа" приходит статус "EMPTY", то его следует интерпретировать как "Неопределенный". Такой подход позволяет избежать ошибки и продолжить работу, даже если точный смысл статуса "EMPTY" в контексте ЧЗ пока неясен или он означает, что код еще не имеет конкретного статуса (например, не был введен в оборот).

Постоянные изменения в API "Честного ЗНАКа" и их влияние

Важно понимать, что частота обновлений API "Честного ЗНАКа" довольно высока. Как мы выяснили из обсуждения, за относительно короткий период (около 50 дней) версии API могли меняться десятки раз. Это создает постоянную потребность в отслеживании этих изменений и своевременном обновлении программного обеспечения, такого как 1С:УТ 11.

Для кого это важно? В первую очередь, для программистов 1С и ИТ-специалистов, которые отвечают за поддержку и интеграцию. Они должны регулярно проверять наличие новых патчей и обновлений для используемых конфигураций 1С. Для конечных пользователей и бухгалтеров это означает необходимость своевременного применения рекомендованных обновлений, чтобы избежать сбоев в работе и обеспечить непрерывность бизнес-процессов.

Общие причины статуса "EMPTY" и другие распространенные ошибки

Когда мы сталкиваемся со статусом "EMPTY" (или когда код не найден в Честном знаке), это может указывать на несколько потенциальных проблем:

  1. Код еще не был введен в оборот поставщиком: Это наиболее частая причина. Поставщик мог не успеть или забыть ввести коды маркировки в оборот до отгрузки.
  2. Некорректные данные в УПД (Универсальном передаточном документе): Ошибки в УПД могут приводить к проблемам с распознаванием кодов.
  3. Временные технические сбои в системе "Честный ЗНАК": Сама система ЧЗ может временно работать некорректно, возвращая неполные или неопределенные статусы.

Помимо "EMPTY", пользователи 1С и "Честного ЗНАКа" могут столкнуться с другими распространенными ошибками:

Важность своевременных проверок и обновлений

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

  1. Проверяйте статусы кодов маркировки до окончательной приемки УПД: В программах 1С предусмотрены встроенные функции для проверки статусов и владельцев кодов. Это позволяет выявить потенциальные проблемы еще до того, как вы примете товар и возьмете на себя ответственность за коды.
  2. Регулярно обновляйте конфигурации 1С: Следите за выходом новых версий и патчей для вашей программы 1С. Установка таких обновлений часто содержит исправления для взаимодействия с государственными системами, такими как "Честный ЗНАК" и ЭДО. При работе с несколькими базами процедуру установки релизов и резервного копирования можно автоматизировать через программу для автоматического обновления баз 1С.
  3. Проверяйте актуальность сертификатов электронной подписи: Истекшие сертификаты могут быть причиной невозможности обмена данными и подписания документов.
  4. Тестируйте процессы взаимодействия: Периодически проводите тестовые операции по приемке и выбытию маркированной продукции, чтобы убедиться в корректности настроек.

Последние регуляторные изменения в табачной отрасли

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

Эти примеры подчеркивают динамичный характер системы и необходимость постоянного отслеживания законодательных и технических нововведений. Мы должны быть готовы к адаптации наших бизнес-процессов и информационных систем для соответствия актуальным требованиям.

В заключение, ошибка "Неизвестный статус кода маркировки: EMPTY" в 1С:УТ 11 при работе с табачной продукцией является следствием эволюции системы "Честный ЗНАК". Ее решение заключается в своевременном применении соответствующих патчей 1С, которые добавляют необходимую логику обработки новых статусов. Мы рекомендуем поддерживать вашу систему 1С в актуальном состоянии и внимательно следить за всеми изменениями в законодательстве и требованиях к маркировке.

← На главную