Как получить коды маркировки по коду транспортной упаковки через API Честного Знака?

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

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

Основной метод True API: /cises/aggregated/list

Для запроса списка кодов, входящих в состав групповой или транспортной упаковки, используется метод /cises/aggregated/list. Рассмотрим ключевые технические требования и правила обращения к данному эндпоинту:

  1. Тип HTTP-запроса и адрес: Обращение выполняется исключительно методом POST по адресу /api/v3/true-api/cises/aggregated/list. Устаревший вызов GET в актуальных версиях API отключен и возвращает ошибку.
  2. Параметр товарной группы: В строке URL обязательно передается идентификатор товарной группы с помощью параметра pg, например: ?pg=shoes или ?pg=water. Если данный параметр пропущен, сервер вернет ошибку валидации.
  3. Тело запроса: Список упаковок передается в формате JSON-массива строк, например: ["04601234567890..."].
  4. Пагинация дочерних элементов: Для получения большого количества кодов во вложении (например, для крупной паллеты) используются параметры пагинации childrenPage (номер страницы) и childrenLimit (лимит записей, по умолчанию 50, максимально до 1000). Если их не обрабатывать, система вернет только первую порцию вложений.
  5. Страна происхождения: Метод возвращает информацию об агрегатах только для продукции, зарегистрированной в РФ. Для товаров операторов ЕАЭС сведения об агрегации через данный вызов не предоставляются.

Особенности вложенности: почему возвращаются не все марки

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

  1. Товарная группа «Табачная продукция»: Метод разворачивает все слои агрегата. Если передана транспортная упаковка (короб), возвращаются вложенные групповые блоки, а для блоков — конечные пачки.
  2. Остальные товарные группы: Метод возвращает только первый уровень вложенности. Если запросить состав паллеты, API вернет коды входящих в нее транспортных коробов, но не потребительские марки (КМ).

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

Альтернативные способы получения состава упаковки

В зависимости от сценария бизнес-процесса прямой опрос метода агрегации может оказаться избыточным. Рассмотрим альтернативные варианты:

  1. Разбор входящего универсального передаточного документа (УПД): При оптовой приемке товара поставщик, как правило, передает полную структуру маркировки. В XML-файле входящего электронного УПД иерархия «паллета — короб — потребительская марка» уже зафиксирована в соответствующих узлах документа.
  2. Получение тела документа через True API: Если документ маркировки загружается напрямую через API ГИС МТ, можно запросить его содержимое через метод /api/v4/true-api/doc/{id}/info?body=true. В теле входящего документа доступна вся связка КИТУ и КМ.
  3. Поиск по реестру кодов: Для анализа собственных остатков на балансе можно использовать метод /api/v4/true-api/cises/search, поддерживающий фильтрацию по статусам и типам упаковок.

Использование встроенных механизмов 1С

Выясним, как решается задача в типовых конфигурациях 1С (ERP, КА, УТ, УНФ, Розница, БП). В типовых решениях ручное написание HTTP-запросов к True API для разборки упаковок обычно не требуется.

В рабочем месте «Подбор и проверка маркируемой продукции» при сканировании штрихкода логистической упаковки система в фоновом режиме связывается с контуром интеграции ГИС МТ, запрашивает состав вложений и автоматически строит дерево упаковок вплоть до потребительских марок.

Если же разработка ведется в нетиповой конфигурации с нуля средствами платформы через объекты HTTPСоединение и HTTPЗапрос, важно учитывать обязательную авторизацию: каждый запрос к методам True API требует передачи действующего токена в заголовке Authorization: Bearer <токен>, полученного путем подписания случайной последовательности сертификатом УКЭП.

← На главную