https://rutube.ru/video/a95bde8699b25aec908f9c143b70e74f/?r=wd В прошлом посте мы получили данные от сервиса в формате JSON и преобразовали их в данные 1С. 2. Преобразуем JSON в структуру 1С Но что делать если нам нужен отдельный объект, или ограниченное количество товаров, или надо добавить сортировку. У каждого API эти параметры свои, но в документации вы скорее всего увидите следующее: https://fakestoreapi.com/products/1 - получаем товар с ID=1 https://fakestoreapi.com/products?limit=5 - выбираем 5 товаров https://fakestoreapi.com/products?sort=desc - сортируем На 1С это реализуется так, у объекта HTTPЗапрос надо сформировать и заполнить АдресРесурса. В прошлых примерах мы просто передавали "products", сейчас сделаем более универсальные функции. В функцию отправки запроса начнем передавать 2 новых параметра. У HTTPСоединение будем вызывать ВызватьHTTPМетод (Отправляет данные на указанный адрес для обработки с использованием указанного HTTP-метода). В данном методе будем теперь четко указывать "GET", "POST" и другие типы запросов. Функция ОтправитьЗапросНаСервере(Знач HTTPМетод, Знач АдресРесурса) ... HTTPЗапрос.АдресРесурса = АдресРесурса; РезультатЗапроса = HTTPСоединение.ВызватьHTTPМетод(HTTPМетод, HTTPЗапрос); ... КонецФункции Теперь опишем функцию формирования нашего адреса. В нее передаем базовый url "products", id объекта "1", и список параметров, через структуру типа ключ-значение "limit=5" и т.п. Создаем массив в который будем будем добавлять все параметры. МассивПараметров = Новый Массив; В цикле пробегаемся по всем параметрам, переданным в функцию и с помощью СтрШаблон создаем строку, которую помещаем в массив. Для каждого Стр Из ПараметрыURL Цикл ПараметрСтр = СтрШаблон("%1=%2", Стр.Параметр, Стр.Значение); МассивПараметров.Добавить(ПараметрСтр); КонецЦикла; Получаем итоговую строку с помощью СтрСоединить, где в качестве разделителя указываем амперсанд. ВсеПараметрыСтр = СтрСоединить(МассивПараметров, "&"); // limit=3&sort=desc Далее в зависимости от того переданы ID и параметры, мы формируем итоговую строку. В результате полный код будет выглядеть так. &НаКлиенте Функция СформироватьАдресРесурса(Знач БазовыйАдрес, Знач ID = Неопределено, Знач ПараметрыURL = Неопределено) МассивПараметров = Новый Массив; Для каждого Стр Из ПараметрыURL Цикл ПараметрСтр = СтрШаблон("%1=%2", Стр.Параметр, Стр.Значение); МассивПараметров.Добавить(ПараметрСтр); КонецЦикла; ВсеПараметрыСтр = СтрСоединить(МассивПараметров, "&"); // limit=3&sort=desc Если ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВсеПараметрыСтр) Тогда ИтоговыйАдрес = СтрШаблон("%1/%2?%3", БазовыйАдрес, Формат(ID, "ЧРГ=''; ЧГ=0"), ВсеПараметрыСтр); // products/1?limit=3 ИначеЕсли ЗначениеЗаполнено(ID) И НЕ ЗначениеЗаполнено(ВсеПараметрыСтр) Тогда ИтоговыйАдрес = СтрШаблон("%1/%2", БазовыйАдрес, Формат(ID, "ЧРГ=''; ЧГ=0")); // products/1 ИначеЕсли НЕ ЗначениеЗаполнено(ID) И ЗначениеЗаполнено(ВсеПараметрыСтр) Тогда ИтоговыйАдрес = СтрШаблон("%1?%2", БазовыйАдрес, ВсеПараметрыСтр); // products?limit=3 Иначе ИтоговыйАдрес = БазовыйАдрес; // products КонецЕсли; Возврат ИтоговыйАдрес; КонецФункции Обратите внимание на то как мы добавляем числовой параметр в строку, через Формат(ID, "ЧРГ=''; ЧГ=0"). Иначе мы можем получить строку такого вида "products/1 000" с пробелом между цифрами. Осталось переписать команду ОтправитьЗапрос. &НаКлиенте Процедура ОтправитьЗапрос(Команда) АдресРесурса = СформироватьАдресРесурса(Адрес, IDОбъекта, ПараметрыЗапроса); Результат = ОтправитьЗапросНаСервере(Метод, АдресРесурса); КонецПроцедуры Реквизиты, которые передаем в новые функции разместим на форме. Скачать готовую обработку @IlyaNizamov #1chttp #1с #1c