При работе с маркированной табачной продукцией в системе 1С:Управление торговлей 11 (1С:УТ 11) пользователи могут столкнуться с ошибкой "Неизвестный статус кода маркировки: EMPTY" при попытке проверить поступившую продукцию. Эта проблема обычно возникает при взаимодействии с государственной информационной системой маркировки товаров "Честный ЗНАК" (ЧЗ) и может касаться всех поставщиков и номенклатуры. Давайте подробно разберем, почему возникает эта ошибка и как ее эффективно устранить.
Первоначально, пользователи замечают, что после нажатия ссылки "Проверить поступившую табачную продукцию" в документе приобретения, система выдает сообщение об ошибке, указывающее на неопределенный статус кода маркировки — "EMPTY". Эта ситуация является критичной, так как блокирует процесс приемки товара и дальнейшую работу с ним. Как правило, такие ошибки возникают не из-за неправильных действий пользователя, а из-за изменений во взаимодействии с внешней системой.
Одной из наиболее частых причин подобных сбоев является несоответствие версий API (Application Programming Interface) между вашей учетной системой 1С и серверами "Честного ЗНАКа". Система маркировки постоянно развивается, и ее API регулярно обновляется. Это означает, что старые версии программного обеспечения 1С могут не распознавать новые статусы, которые начинает возвращать ЧЗ. Именно так произошло со статусом "EMPTY". На момент возникновения проблемы, конфигурация 1С не содержала логики для обработки этого конкретного значения статуса, что приводило к генерации исключения "Неизвестный статус кода маркировки".
К счастью, фирма "1С" оперативно реагирует на такие изменения и выпускает специальные патчи для своих типовых конфигураций. В нашем случае, для устранения ошибки "Неизвестный статус кода маркировки: EMPTY" был выпущен патч с идентификатором EF_00_00457774 от 01.07.2022. Этот патч предназначен для добавления в конфигурацию 1С:УТ 11 необходимой логики по обработке нового статуса.
Рассмотрим подробнее, что именно изменилось в коде благодаря этому патчу. Основная суть заключается в том, что в функцию, отвечающую за сопоставление строкового представления статуса кода маркировки, полученного от "Честного ЗНАКа", с внутренними перечислениями 1С, была добавлена новая ветка обработки.
Представим себе фрагмент кода, который отвечает за распознавание статусов. До патча, если система "Честный ЗНАК" возвращала статус, не предусмотренный в списке, генерировалось исключение. Патч же добавляет обработку статуса "EMPTY", приравнивая его к значению "Неопределен". Это позволяет системе корректно обрабатывать ситуацию, не прерывая работу программы.
Вот как может выглядеть измененный участок кода в модуле, отвечающем за работу с маркировкой (например, в функции, которая преобразует строковый статус от ЧЗ в значение перечисления Перечисления.СтатусыКодовМаркировкиМОТП):
// ... предыдущие ветки обработки статусов ...
ИначеЕсли ЗначениеПоиска = "UNDEFINED" Тогда
Возврат Перечисления.СтатусыКодовМаркировкиМОТП.Неопределен;
ИначеЕсли ЗначениеПоиска = "EMPTY" Тогда // <-- Добавлена эта строка
Возврат Перечисления.СтатусыКодовМаркировкиМОТП.Неопределен; // <-- И эта строка
ИначеЕсли ЗначениеПоиска = "ELIMINATED" Тогда
Возврат Перечисления.СтатусыКодовМаркировкиМОТП.НеИспользован;
КонецЕсли;
ВызватьИсключение
СтрШаблон(
НСтр("ru = 'Неизвестный статус кода маркировки: %1'"),
ЗначениеПоиска);
Мы видим, что добавлена простая, но критически важная конструкция ИначеЕсли ЗначениеПоиска = "EMPTY" Тогда Возврат Перечисления.СтатусыКодовМаркировкиМОТП.Неопределен;. Эта строка указывает системе 1С, что если от "Честного ЗНАКа" приходит статус "EMPTY", то его следует интерпретировать как "Неопределенный". Такой подход позволяет избежать ошибки и продолжить работу, даже если точный смысл статуса "EMPTY" в контексте ЧЗ пока неясен или он означает, что код еще не имеет конкретного статуса (например, не был введен в оборот).
Важно понимать, что частота обновлений API "Честного ЗНАКа" довольно высока. Как мы выяснили из обсуждения, за относительно короткий период (около 50 дней) версии API могли меняться десятки раз. Это создает постоянную потребность в отслеживании этих изменений и своевременном обновлении программного обеспечения, такого как 1С:УТ 11.
Для кого это важно? В первую очередь, для программистов 1С и ИТ-специалистов, которые отвечают за поддержку и интеграцию. Они должны регулярно проверять наличие новых патчей и обновлений для используемых конфигураций 1С. Для конечных пользователей и бухгалтеров это означает необходимость своевременного применения рекомендованных обновлений, чтобы избежать сбоев в работе и обеспечить непрерывность бизнес-процессов.
Когда мы сталкиваемся со статусом "EMPTY" (или когда код не найден в Честном знаке), это может указывать на несколько потенциальных проблем:
Помимо "EMPTY", пользователи 1С и "Честного ЗНАКа" могут столкнуться с другими распространенными ошибками:
Для минимизации ошибок при работе с маркированной продукцией, мы настоятельно рекомендуем следующее:
Система маркировки табачной и никотинсодержащей продукции постоянно развивается, и мы должны быть в курсе последних регуляторных изменений:
Эти примеры подчеркивают динамичный характер системы и необходимость постоянного отслеживания законодательных и технических нововведений. Мы должны быть готовы к адаптации наших бизнес-процессов и информационных систем для соответствия актуальным требованиям.
В заключение, ошибка "Неизвестный статус кода маркировки: EMPTY" в 1С:УТ 11 при работе с табачной продукцией является следствием эволюции системы "Честный ЗНАК". Ее решение заключается в своевременном применении соответствующих патчей 1С, которые добавляют необходимую логику обработки новых статусов. Мы рекомендуем поддерживать вашу систему 1С в актуальном состоянии и внимательно следить за всеми изменениями в законодательстве и требованиях к маркировке.