При работе с системой маркировки «Честный ЗНАК» в программах 1С:Управление торговлей, ERP или Комплексная автоматизация пользователи часто сталкиваются с ситуацией, когда некоторые позиции номенклатуры ведут себя некорректно: система не видит в них признака маркировки, а регистр Пул кодов маркировки СУЗ остается пустым. В этой статье мы подробно разберем механизмы работы системы маркировки, выясним, что на самом деле влияет на «узнаваемость» товара программой, и научимся правильно работать с техническими регистрами СУЗ.
Первое и самое важное заблуждение, с которым мы сталкиваемся: предположение о том, что наличие записей в регистре Пул кодов маркировки СУЗ делает товар маркируемым. Это не так. Давайте проанализируем ситуацию и выясним, где на самом деле хранится этот признак.
В системе 1С признак того, что товар подлежит обязательной маркировке, определяется исключительно настройками справочника «Виды номенклатуры». Если ваша номенклатура распознается как немаркированная продукция, нам необходимо выполнить следующие шаги:
Таким образом, регистр Пул кодов маркировки СУЗ является лишь «складом» для временного хранения полученных марок, но он никак не влияет на логику поведения карточки товара в документах.
Проанализируем назначение этого регистра. Пул кодов маркировки СУЗ — это техническое хранилище для кодов формата DataMatrix, которые уже эмитированы (выпущены) станцией управления заказами (СУЗ), но еще не были нанесены на товар или распечатаны.
Рассмотрим механизм автоматического заполнения этого регистра:
Заполнение происходит строго через цепочку документов обмена с «Честным ЗНАКом». Основным документом-инициатором является Заказ на эмиссию кодов маркировки СУЗ. Процесс выглядит следующим образом:
Пул кодов маркировки СУЗ.Важно помнить: вы не должны заполнять этот регистр вручную или сторонними обработками. Каждая запись в нем жестко привязана к идентификатору заказа (Order ID), который знает СУЗ. Ручное вмешательство приведет к тому, что вы не сможете корректно отчитаться о нанесении этих кодов.
Чтобы понять, почему в регистре могут отсутствовать данные по конкретным позициям, разберем путь кода маркировки внутри базы данных 1С:
Пул кодов маркировки СУЗ. На этом этапе он считается свободным и готовым к использованию.Маркировка товаров ИС МП с операцией «Отчет о нанесении», система «забирает» код из пула.Пул кодов маркировки СУЗ удаляется. Вместо этого создается запись в регистре Штрихкоды упаковок и товаров.Выясним причину отсутствия данных: Если по вашим трем позициям в регистре пусто, это означает одно из двух: либо коды для них еще не были заказаны (эмитированы), либо они уже были распечатаны/использованы и перешли в категорию маркированных упаковок.
Рассмотрим ситуации, когда заказ выполнен, но регистр остается пустым:
1. Ошибки сопоставления GTIN:
Записи в пуле привязаны к коду товара (GTIN). Если вы изменили GTIN в карточке номенклатуры после того, как заказали коды, 1С не сможет сопоставить старые коды из пула с «новой» карточкой товара. Проверьте актуальность штрихкодов в справочнике Номенклатура.
2. Разные организации: Коды маркировки в пуле всегда привязаны к конкретной организации-владельцу. Если вы заказали коды на «Организацию А», а пытаетесь увидеть их в контексте «Организации Б», регистр будет пуст.
3. Регламентные задания: В типовых конфигурациях работают регламентные задания, которые могут очищать устаревшие коды из пула, если они не были использованы в течение установленного срока (например, если коды были заказаны, но не оплачены в СУЗ, или вышел срок их жизни).
Если вам действительно необходимо наполнить пул кодов для работы, мы рекомендуем использовать только штатные механизмы:
Заказ на эмиссию. Это корректно пропишет их в базу 1С.Рассмотрим пример того, как программно проверить наличие свободных кодов в пуле (информация для разработчиков):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПулКодовМаркировкиСУЗ.КодМаркировки КАК Код,
| ПулКодовМаркировкиСУЗ.Номенклатура КАК Номенклатура
|ИЗ
| РегистрСведений.ПулКодовМаркировкиСУЗ КАК ПулКодовМаркировкиСУЗ
|ГДЕ
| ПулКодовМаркировкиСУЗ.Номенклатура В(&МассивНоменклатуры)";
Запрос.УстановитьПараметр("МассивНоменклатуры", СписокПроблемныхТоваров);
Результат = Запрос.Выполнить();
Если данный запрос возвращает пустой результат, значит, системе просто нечего предлагать для маркировки. В этом случае необходимо инициировать новый процесс эмиссии через интерфейс ИС МП в вашей программе.
Подведем итог: Не бойтесь отсутствия данных в регистре Пул кодов маркировки СУЗ, если товар уже промаркирован. Но всегда проверяйте Вид номенклатуры, так как именно он является «фундаментом» для правильной работы механизмов маркировки в 1С. Помните, что ручное редактирование технических регистров СУЗ — это крайняя мера, которая может привести к рассинхронизации данных с государственными серверами.