Как исправить ошибку верификации крипто-подписи кода маркировки в ГИС МТ при работе с 1С

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

При работе с системой «Честный Знак» (ГИС МТ) пользователи 1С часто сталкиваются с ошибкой «Ошибка верификации крипто-подписи КМ». Эта проблема блокирует возможность продажи или ввода товара в оборот, так как система не может подтвердить подлинность нанесенного кода. Чтобы оперативно проконтролировать ситуацию на складе или в торговом зале, можно использовать приложение проверки маркировки для Android, которое работает в разрешительном режиме — для этого подойдёт мобильное приложение для ТСД и смартфонов по контролю кодов маркировки. Ошибка может возникать внезапно: часть кодов из партии проходит проверку, а часть — нет. Разберем подробно причины возникновения этой ситуации и пошагово рассмотрим способы ее решения.

Выясним причину ошибки верификации

Для начала проанализируем, что именно происходит в момент верификации. Код маркировки DataMatrix состоит из нескольких частей: GTIN, серийный номер и так называемый «криптохвост» (код проверки). Ошибка верификации означает, что контрольная сумма, вычисленная на основе данных кода, не совпадает с той, что заложена в крипто-подписи, либо система не может корректно прочитать эту подпись. Рассмотрим основные уровни, на которых может возникнуть сбой:

  1. Аппаратный уровень: Неправильная настройка сканера штрихкодов, из-за которой данные искажаются при передаче в 1С.
  2. Программный уровень (Локальный): Устаревшие версии криптографического ПО (КриптоПро) или отсутствие необходимых сертификатов.
  3. Программный уровень (1С): Использование старой версии «Библиотеки электронных документов» (БЭД).
  4. Уровень данных: Физическое повреждение кода или ошибка при его генерации на стороне производителя (поставщика).

Решение 1: Настройка сканера и передача символа GS

Проанализируем работу сканера. Самая частая причина ошибки — некорректная передача спецсимвола GS (Group Separator, ASCII 29). Этот символ является разделителем полей в коде DataMatrix. Если сканер настроен в режиме эмуляции клавиатуры (HID), он часто игнорирует этот символ, «склеивая» части кода. В результате крипто-подпись становится невалидной.

Рассмотрим шаги по исправлению:

Решение 2: Обновление КриптоПро и настройка сервера

Посмотрим на программную часть. Даже если в торговых точках (на кассах) КриптоПро не установлено, верификация может выполняться на сервере 1С или через веб-сервисы, которые требуют актуальных алгоритмов ГОСТ. Порой ошибка возникает из-за того, что серверная часть не может корректно обработать запрос к ГИС МТ.

Разберем рекомендации по обновлению:

Решение 3: Очистка кэша штрихкодов в 1С

Проанализируем ситуацию, когда настройки исправлены, но ошибка сохраняется. В конфигурациях 1С существует механизм кэширования результатов проверки кодов маркировки — для борьбы с ошибками верификации есть рабочее место для исправления ошибок сканирования марок. Если код один раз был считан некорректно (например, до настройки сканера), 1С запоминает этот «битый» результат в регистре сведений.

Выясним, как очистить эти данные. Нам необходимо найти регистр КэшШтрихкодовУпаковок (название может незначительно отличаться в зависимости от версии БЭД). Посмотрим на пример логики, которую можно применить для очистки через «Функции для технического специалиста»:

  1. Перейдем в меню Функции для технического специалиста.
  2. Найдем регистр сведений Кэш штрихкодов упаковок (или Пул штрихкодов в некоторых отраслевых решениях).
  3. Удалим записи, связанные с проблемными кодами маркировки.

После очистки при следующем сканировании система будет обязана заново отправить запрос в ГИС МТ (True API) для получения актуального статуса верификации — для этой задачи есть обработка инвентаризации и сверки кодов маркировки с Честным Знаком.

Решение 4: Актуализация версии 1С и переход на True API

Система «Честный Знак» постоянно меняет протоколы взаимодействия. Старые методы верификации постепенно отключаются. Для стабильной

Рассмотрим порядок действий:

Решение 5: Перемаркировка и работа с данными Национального каталога

Иногда проблема кроется в самом коде DataMatrix. Если печать была некачественной (низкое разрешение, «полосящий» принтер), сканер может считывать код с ошибками в отдельных битах. Визуально код может выглядеть целым, но контрольная сумма криптохвоста не совпадет.

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

  1. Проверим проблемный КМ через мобильное приложение «Честный Знак.Бизнес». Если мобильное приложение также выдает ошибку верификации на разных устройствах — проблема в самом коде.
  2. Если код поврежден или изначально выпущен с ошибкой в структуре, единственным надежным способом будет перемаркировка — для этого подойдёт решение для полной автоматизации процесса перемаркировки в 1С.
  3. Для этого в 1С создадим документ «Перемаркировка товаров ИС МП». В некоторых случаях может потребоваться повторно вывести на печать коды маркировки из заказа на эмиссию с криптохвостом, чтобы восстановить поврежденные этикетки.

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

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


// Пример получения данных из кэша или запроса к ИС МП
ПараметрыПроверки = ИнтеграцияИСМПКлиентСервер.ПараметрыПроверкиКодовМаркировки();
ПараметрыПроверки.ПроверятьКриптоподпись = Истина;

Результат = МаркировкаТоваровПередачДанных.ПроверитьКодыМаркировки(МассивКодов, ПараметрыПроверки);

Для Каждого СтрокаРезультата Из Результат.Ошибки Цикл
    Сообщить("Код: " + СтрокаРезультата.КодМаркировки + " Ошибка: " + СтрокаРезультата.ТекстОшибки);
КонецЦикла;

Изучив лог выполнения этой функции, можно понять, возвращает ли ошибку сам сервер ЦРПТ или отказ происходит на уровне локальной проверки компонентой 1С.

Резюме по исправлению

Подводя итог, если вы столкнулись с ошибкой верификации крипто-подписи, действуйте методично: сначала исключите влияние сканера (проверьте передачу GS1), затем обновите ПО (КриптоПро и 1С), очистите внутренний кэш базы данных и, если ничего не помогло, прибегайте к перемаркировке товара. Помните, что стабильная работа маркировки требует точной синхронизации времени и актуальных корневых сертификатов на всех узлах системы.

← На главную