Может, кто-нибудь из молодых программистов 1С подчеркнёт для себя что-то нужное.
Так вот. Негодованию пользователей УТ 10.3 нет предела, поскольку при выполнении запроса api/v3/facade/cis/cis_list возникает ошибка:
Код состояния HTTP: 410.
Текст ошибки: {
"code": 410,
"error_message": "Устаревшее API",
"method": "POST /api/v3/facade/cis/cis_list"
}.
Данный запрос используется при проверке кода маркировки через модуль обмена с ИСМП.
В рамках проводимых технических работ на промышленном контуре https://markirovka.crpt.ru метод POST /api/v4/facade/cis/cis_list был отключен. Теперь альтернативой методу является метод TRUE API.
Пройдя отладчиком в общем модуле "ИнтерфейсИСМП", найдена функция "СтатусыКодовМаркировкиПакетно" в которой формируется URLЗапрос.
Несколько штрихов в коде (которые я подсмотрел в УТ 11) и получилось получать ответ от ЧЗ.
Штришки в коде:
Для Каждого КлючИЗначениеПараметровЗапроса Из ПараметрыЗапросаПоВидамПродукции Цикл
ВидПродукции = КлючИЗначениеПараметровЗапроса.Ключ;
ПараметрыЗапроса = КлючИЗначениеПараметровЗапроса.Значение;
//{Было
//URLЗапроса = СтрШаблон(
// "api/v3/facade/cis/cis_list%1",
// ПараметрыЗапроса(ПараметрыЗапроса.ПараметрыURL));
//}
//{Стало
URLЗапроса = СтрШаблон(
"api/v3/true-api/cises/info%1",
ПараметрыЗапроса(ПараметрыЗапроса.ПараметрыURL));
// }
// Было {
//ДанныеЗапроса = Новый Структура();
// ДанныеЗапроса.Вставить("cises", ПараметрыЗапроса.КодыМаркировки);
//}
//{Стало - Взял из УТ 11
ОтсортированныеКодыМаркировки = Новый СписокЗначений;
ОтсортированныеКодыМаркировки.ЗагрузитьЗначения(ПараметрыЗапроса.КодыМаркировки);
ОтсортированныеКодыМаркировки.СортироватьПоЗначению();
// }
//{Было
//РезультатЗапроса = ИнтеграцияИСМП.ОтправитьДанныеВСервис(
// URLЗапроса,
// ДанныеЗапроса,
// КлючСессии,
// "POST",
// ИнтерфейсИСМПКлиентСервер.ПараметрыОтправкиHTTPЗапросов(ВидПродукции));
//}
// { Стало
РезультатЗапроса = ИнтеграцияИСМП.ОтправитьДанныеВСервис(
URLЗапроса,
ОтсортированныеКодыМаркировки.ВыгрузитьЗначения(),
КлючСессии,
"POST",
ИнтерфейсИСМПКлиентСервер.ПараметрыОтправкиHTTPЗапросов(ВидПродукции, Истина));
//}
И ещё вот в этом цикле в этой же Функции:
Для Каждого КлючИЗначение Из ДанныеОбработки[0] Цикл
// Теперь ответом от ЧЗ приходит массив, [0] - в нём соответствие в котором все данные.
СтатусыПоЗначениямДляПоиска.Вставить(
КлючИЗначение.Значение["cis"], // Было "КлючИЗначение.Ключ"
ИнтерфейсИСМПСлужебный.ИнициализироватьПараметрыКодаМаркировки(
КлючИЗначение.Значение, ВидПродукции, Ложь));
КонецЦикла;
Для моих нужд данной корректировки вполне хватило.
В результате:
СтажРаботыПрограммистом1с = Строка(0,5) + " лет"