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