С развитием системы маркировки "Честный знак" (ГИС МТ) многие разработчики столкнулись с отключением старых методов API, которые использовались годами. Одним из таких критических изменений стало отключение Facade API, в частности метода api/v4/facade/identifytools/aggregated, который позволял получать содержимое агрегатов (коробок, паллет). Рассмотрим подробнее, на что заменить этот метод, как правильно сформировать новый запрос и какие технические нюансы следует учесть при реализации в 1С.
Проанализируем ситуацию: начиная с 1 апреля 2024 года, ЦРПТ окончательно прекратил поддержку устаревших методов "фасада". На смену им пришел True API версий v3 и v4. Для получения списка вложенных кодов идентификации (КИ), входящих в состав транспортной упаковки (агрегата), теперь необходимо использовать метод cises/aggregated/list.
Выясним основные параметры нового запроса:
https://markirovka.crpt.ru. Полный путь к методу: /api/v3/true-api/cises/aggregated/list.Разберем по шагам, как реализовать этот вызов программно. Нам потребуется сформировать правильные заголовки (включая авторизационный токен Bearer) и передать массив кодов в теле запроса. Посмотрим на пример функции, которая инкапсулирует логику взаимодействия:
Функция ПолучитьСписокАгрегированныхКИ(Токен, КодМаркировки, ТоварнаяГруппа = "shoes") Экспорт
// Подготовка массива кодов
КодыМассив = Новый Массив;
КодыМассив.Добавить(КодМаркировки);
// Настройка соединения
Сервер = "markirovka.crpt.ru";
Ресурс = "/api/v3/true-api/cises/aggregated/list?pg=" + ТоварнаяГруппа;
Заголовки = Новый Соответствие;
Заголовки.Вставить("Authorization", "Bearer " + Токен);
Заголовки.Вставить("Content-Type", "application/json");
HTTPСоединение = Новый HTTPСоединение(Сервер, , , , , , Новый ЗащищенноеСоединениеOpenSSL);
HTTPЗапрос = Новый HTTPЗапрос(Ресурс, Заголовки);
// Формируем тело JSON. Код передается без экранирования для URL, но как строка JSON.
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, КодыМассив);
СтрокаТела = ЗаписьJSON.Закрыть();
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаТела, КодировкаТекста.UTF8);
HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Если HTTPОтвет.КодСостояния = 200 Тогда
// Разбор ответа
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(HTTPОтвет.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(ЧтениеJSON);
Возврат Данные;
КонецЕсли;
Возврат Неопределено;
КонецФункции
При работе с методами True API следует учитывать специфику (включая обработку сжатого в Zip http-ответа), которая часто становится причиной ошибок при интеграции. Рассмотрим наиболее важные моменты:
pg в строке запроса (например, ?pg=shoes) указывает на товарную группу. Хотя в некоторых случаях система может определить её автоматически, рекомендуется всегда указывать актуальную группу (milk, water, shoes, clothes и т.д.) для ускорения обработки и стабильности.Проанализируем ситуацию, когда вам нужно получить не только список вложенных кодов, но и их текущие статусы или информацию о владельце. В этом случае вместо aggregated/list целесообразно использовать метод POST /api/v3/true-api/cises/short/list.
Этот метод возвращает структуру, в которой для каждого переданного кода в поле children будет содержаться массив вложенных элементов. Это позволяет за один запрос получить комплексную информацию по иерархии и состоянию кодов. Выясним, какой сервер лучше использовать: для таких "тяжелых" запросов ЦРПТ рекомендует обращаться к CDN-площадкам по адресу cdn.crpt.ru, что значительно снижает время ожидания ответа при высокой нагрузке на основную систему.
Рассмотрим пример структуры заголовков для универсального взаимодействия:
Функция ПолучитьЗаголовкиВзаимодействия(Токен)
Заголовки = Новый Соответствие;
Заголовки.Вставить("accept", "*/*");
Заголовки.Вставить("Content-Type", "application/json");
Заголовки.Вставить("Authorization", "Bearer " + Токен);
Возврат Заголовки;
КонецФункции
Используя предложенные подходы, мы обеспечим корректную работу с агрегатами в условиях обновлений ГИС МТ. Своевременный переход на новые версии API является залогом стабильности бизнес-процессов.