Как сделать повторную печать кодов маркировки «Честный знак» в 1С?

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

При работе с государственной системой маркировки «Честный знак» в программных продуктах 1С (таких как «1С:Комплексная автоматизация», «1С:ERP» или «1С:Управление торговлей») пользователи часто сталкиваются с жестким ограничением: система безопасности 1С позволяет распечатать полученные коды маркировки только один раз. Это сделано для минимизации рисков дублирования уникальных марок на складе и предотвращения пересортицы.

Однако в реальной практике регулярно возникают нештатные ситуации: принтер этикеток замял ленту, закончился риббон, произошел сбой питания или этикетка повредилась при транспортировке. В таких случаях возникает необходимость напечатать коды повторно. В этой статье мы подробно разберем, как обойти ограничение однократной печати стандартными средствами, как решить проблему программным путем и какие лучшие практики помогут защитить ваш бизнес от утери кодов маркировки.

Решение 1. Стандартный сброс признака печати в документе «Заказ на эмиссию»

Разработчики фирмы 1С предусмотрели штатную сервисную команду для сброса отметки о том, что этикетки уже выводились на принтер. Чтобы воспользоваться этим механизмом, выполним следующие шаги:

  1. Перейдем в раздел маркировки и откроем исходный документ ЗаказНаЭмиссиюКодовМаркировкиСУЗ, по которому необходимо выполнить перепечатку.
  2. В верхней панели формы документа найдем и нажмем кнопку «Еще».
  3. В выпадающем меню выберем пункт «Сбросить признак печати» (в некоторых версиях конфигураций этот пункт может называться «Сбросить дату печати»).
  4. После выполнения этой команды статус кодов обнулится, и программа позволит нам повторно сформировать печатную форму с DataMatrix-кодами через стандартную кнопку «Печать».

Решение 2. Сброс признака печати напрямую в регистре «Пул кодов маркировки СУЗ»

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

Рассмотрим по шагам, как очистить признак печати через этот регистр:

  1. Откроем главное меню программы и перейдем в раздел «Функции для технического специалиста» (если данный режим не активен, его необходимо предварительно включить в настройках параметров пользователя, при наличии соответствующих прав администратора).
  2. В открывшемся окне найдем регистр сведений под названием ПулКодовМаркировкиСУЗ.
  3. Выполним поиск по нашему документу-основанию (Заказу на эмиссию) или конкретному коду маркировки.
  4. В структуре записей этого регистра обратим внимание на ключевой реквизит (ресурс) — ДатаПечати. Именно заполнение этого поля блокирует повторный вывод этикетки.
  5. Для повторной печати нам необходимо очистить значение в поле ДатаПечати (сделать его пустым) или изменить статус кодов обратно на «Готов к печати».

Почему стандартный сброс признака печати помогает не всегда?

Часто пользователи сталкиваются со следующей проблемой: они нажимают заветную кнопку «Сбросить признак печати», но система выдает критическую ошибку: «Коды маркировки отсутствуют. Возможно, они уже введены в оборот и удалены из пула». Давайте проанализируем, почему так происходит.

Дело в том, что в типовых конфигурациях 1С настроен механизм автоматической оптимизации базы данных и защиты от дублирования. Для большинства товарных групп (одежда, обувь, БАДы, антисептики и др.) настроено правило: как только документ МаркировкаТоваровИСМП (или «Отчет о нанесении») успешно отправлен и подтвержден в системе «Честный знак», 1С физически удаляет уникальные коды с криптохвостами из регистра ПулКодовМаркировкиСУЗ. Также очистку могут производить фоновые регламентные задания по расписанию. Если коды уже удалены из пула базы данных, восстановить их стандартным нажатием кнопок внутри 1С для повторной печати не удастся.

Решение 3. Программное отключение очистки пула кодов (для разработчиков)

Если бизнес-процессы вашей компании предполагают частую повторную маркировку (например, при возвратах от покупателей или частой порче этикеток на складе), типовое поведение системы по автоматическому удалению кодов из пула можно скорректировать с помощью расширения конфигурации.

Проанализируем алгоритм решения этой задачи:

  1. Создадим новое расширение конфигурации в режиме «1С:Предприятие - Конфигуратор».
  2. Найдем модуль менеджера регистра сведений ПулКодовМаркировкиСУЗ.
  3. Перехватим экспортный метод ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении с помощью аннотации &Вместо.
  4. Закомментируем вызов оригинального кода, предотвращая физическое удаление записей. Пример программного кода в расширении:

&Вместо("ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении")
Процедура Мой_ОчисткаПулаКодовМаркировкиПоОтчетуОНанесении(КодыМаркировки)
    // Мы блокируем стандартный вызов очистки пула кодов маркировки.
    // Оригинальная строка закомментирована:
    // ПродолжитьВызов(КодыМаркировки);
    
    // При необходимости здесь можно прописать собственную логику архивации кодов 
    // или ведения лога повторной печати для службы безопасности.
КонецПроцедуры

При таком подходе коды маркировки с криптохвостами будут постоянно оставаться в вашей локальной базе данных, и вы сможете сбрасывать дату печати и перепечатывать их неограниченное количество раз.

Решение 4. Настройка прав доступа и ролей

Если рядовой кладовщик или оператор печати заявляет, что у него в интерфейсе «Заказа на эмиссию» отсутствует кнопка сброса признака печати, проблема кроется в правах доступа. Команда сброса скрыта для обычных пользователей в целях безопасности.

Чтобы предоставить сотруднику такую возможность, в настройках прав доступа его профиля в 1С необходимо активировать специализированную роль: АдминистрированиеИСМП (в различных редакциях программ название может незначительно отличаться, например, «Администрирование ИС МП» или «Добавление изменение кодов маркировки»). Без этой роли команда сброса даты печати в меню «Еще» просто не отобразится.

Жесткое ограничение со стороны ГИС МТ «Честный знак» (Правило 48 часов)

Если коды маркировки уже удалены из базы 1С, у нас остается теоретическая возможность выгрузить их повторно напрямую из личного кабинета (ЛК) системы «Честный знак». Однако здесь в силу вступает важнейшее законодательное и техническое ограничение СУЗ (Станции управления заказами):

Скачать файл с полными кодами маркировки, содержащими криптографический хвост (необходимый для генерации корректного штрихкода DataMatrix), можно только в течение 48 часов (2 суток) с момента их эмиссии.

По истечении этого времени СУЗ безвозвратно удаляет криптохвосты со своих серверов. В личном кабинете останется доступен только список самих Кодов Идентификации (КИ) без проверочных кодов. Сгенерировать полноценную этикетку из такого усеченного списка стандартным принтером невозможно — эти коды пригодны только для ввода данных вручную в текстовых документах ЛК.

Рекомендации по безопасной организации процесса печати (Best Practices)

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

  1. Печать через виртуальный PDF-принтер: Вместо прямой отправки сотен этикеток из 1С на физический принтер, настройте печать в файл формата PDF. Наличие готового PDF-файла гарантирует, что при любом замятии бумаги или поломке принтера вы сможете отправить этот файл на печать повторно любое количество раз, не затрагивая пул кодов в базе 1С.
  2. Локальный архив файлов эмиссии: При настройке обмена с СУЗ укажите сетевой каталог для сохранения входящих XML/TXT файлов с кодами. Наличие резервной копии оригинальных файлов от «Честного знака» позволит восстановить этикетки через сторонние редакторы (например, BarTender или компоненты печати) даже при полном повреждении или очистке базы данных 1С.
← На главную