Процедура УстановитьПараметрыЗапросаКRESTСервису(ТекстЗапроса, ПараметрыЗапроса)
// {Начало CR-57979 04.08.22 Пухов
// Установка переданных параметров
// Преобразование всех параметров в линейный формат
ЗначенияПараметров = ПреобразоватьВЗначенияПараметров(ПараметрыЗапроса);
Для каждого ЗначениеПараметра Из ЗначенияПараметров Цикл
Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("Соответствие")
ИЛИ ТипЗнч(ЗначениеПараметра.Значение) = Тип("СписокЗначений") Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("Дата") Тогда
ТекЗначение = ДатаСтрокой(ЗначениеПараметра.Значение);
Иначе
ТекЗначение = XMLСтрока(ЗначениеПараметра.Значение);
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&" + ЗначениеПараметра.Ключ, ТекЗначение);
КонецЦикла;
// Удаление переносов строк
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, Символы.ПС, "");
КонецПроцедуры // Конец CR-57979 04.08.22 Пухов }
Функция ПреобразоватьВЗначенияПараметров(ПараметрыЗапроса)
// {Начало CR-57979 04.08.22 Пухов
ЗначенияПараметров = Новый Структура;
Для каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл
ИмяПараметра = ПараметрЗапроса.Ключ;
Если ТипЗнч(ПараметрЗапроса.Значение) = Тип("Массив") Тогда
Номер = 0;
МассивПараметров = ПараметрЗапроса.Значение;
Для каждого ЭлементМассиваПараметров Из МассивПараметров Цикл
Номер = Номер + 1;
НомерСтрокой = Формат(Номер, "ЧГ=");
Для каждого ЭлементСтруктуры Из ЭлементМассиваПараметров Цикл
ЗначенияПараметров.Вставить(ЭлементСтруктуры.Ключ + НомерСтрокой, ЭлементСтруктуры.Значение);
КонецЦикла;
КонецЦикла;
Иначе
ЗначенияПараметров.Вставить(ИмяПараметра, ПараметрЗапроса.Значение);
КонецЕсли;
КонецЦикла;
Возврат ЗначенияПараметров;
КонецФункции // Конец CR-57979 04.08.22 Пухов }
Функция ДатаСтрокой(ЗначениеРеквизита)
// {Начало CR-57979 04.08.22 Пухов
ЗначениеПоля = "";
Если НЕ ЗначениеЗаполнено(ЗначениеРеквизита) Тогда
Возврат ЗначениеПоля;
КонецЕсли;
// 2017-04-26
ЗначениеПоля = Формат(ЗначениеРеквизита, "ДФ=yyyy-MM-dd");
Возврат ЗначениеПоля;
КонецФункции // Конец CR-57979 04.08.22 Пухов }