При интеграции с системой «Честный ЗНАК» часто возникает необходимость печати кодов маркировки на специализированных термопринтерах. Использование готовых PDF-файлов из личного кабинета не всегда удобно, так как они не подходят для автоматизированных процессов. Разберем, как получить полные данные кода маркировки, включая необходимый для валидации криптохвост, используя API СУЗ. Если же требуется обработать уже сформированные файлы, можно использовать обработку для извлечения кодов DataMatrix из PDF-документов «Честного Знака».
Важно помнить, что коды маркировки (КИ) состоят из GTIN, серийного номера и криптографического хвоста. Именно криптохвост является защитным элементом, который генерируется на стороне СУЗ при заказе эмиссии. Получить его можно только в момент работы с заказами через API, поэтому важно правильно настроить взаимодействие с сервером СУЗ.
Для начала работы необходимо правильно сформировать объект HTTPСоединение. Ошибки при подключении чаще всего связаны с неверным указанием хоста или порта. Обратите внимание, что актуальные эндпоинты могут меняться, и на текущий момент целесообразно использовать suzgrid.crpt.ru.
Рассмотрим структуру подключения в коде 1С:
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("clientToken", ClientToken);
ЗаголовокHTTP.Вставить("Accept", "application/json");
// Используем актуальный хост для запросов к СУЗ
АдресСервера = "suzgrid.crpt.ru";
Соединение = Новый HTTPСоединение(АдресСервера, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL);
// Формируем запрос к нужному методу API
urlЗапроса = "/api/v2/light/codes/retry?omsId=" + omsId + "&orderId=" + orderId + ">in=" + gtin + "&blockId=" + blockId;
Запрос = Новый HTTPЗапрос(urlЗапроса, ЗаголовокHTTP);
Ответ = Соединение.ВызватьHTTPМетод("GET", Запрос);
Для того чтобы забрать уже заказанные, но еще не «скачанные» коды вместе с криптохвостом, используем метод codes/retry. Этот метод позволяет повторно получить данные блоков кодов, если они были ранее сформированы в заказе.
Для работы метода необходимо передать следующие параметры:
omsId — идентификатор системы управления заказами.orderId — уникальный идентификатор вашего заказа на эмиссию.gtin — идентификатор товара в системе GS1.blockId — идентификатор блока кодов, который вы получили при первичном запросе списка кодов.После успешного получения JSON-ответа от сервера, вам необходимо распарсить его и извлечь значения binaryCode или аналогичных полей, содержащих полный код с криптохвостом. Критически важно не открывать промежуточные файлы (если вы скачиваете их в CSV) в программах типа Excel, так как они могут исказить спецсимволы и длинные числовые последовательности.
Для печати на термопринтере мы рекомендуем реализовать собственный алгоритм генерации DataMatrix:
Если при выполнении запросов вы получаете ошибки:
URL и наличие обязательных заголовков clientToken. Убедитесь, что токен не просрочен.https:// в первом параметре конструктора HTTPСоединение).Таким образом, прямой доступ к API СУЗ позволяет полностью автоматизировать процесс получения кодов и исключает необходимость работы с PDF-шаблонами, обеспечивая стабильную и корректную печать маркировки на любом производственном участке.