Передача Таблицы Значений через HTTP-сервис

Отправка / Прием (Сторона 1)

Функция ОтправитьPostЗапросJSON(текстЗапросаВФорматеJSON, Путь) Экспорт
Если Доработки_Сервер.ОпределитьЭтаИнформационнаяБазаРабочая() Тогда
url = "localhost";
ИмяСервисаВебСервер = "Buh8United";
Иначе
url = "localhost";
ИмяСервисаВебСервер = "ViatecBP_Tro";
КонецЕсли;
Данные = Неопределено;
Попытка
соединение = Новый HTTPСоединение(url,,"ПолучениеДопДанныхДляУТ","BiphI4033imOcun2Phed",,600);
Исключение
Сообщить("Не удалось установить соединение с сервером :"
+ Символы.ПС + ИнформацияОбОшибке().Описание+" для получения данных по наличию налоговых накладных. Повторная попытка будет выполнена позже.", СтатусСообщения.Важное);
Возврат Неопределено;
КонецПопытки;
запрос = Новый HTTPЗапрос("/"+ИмяСервисаВебСервер+"/hs/sales/"+Путь+"/");
запрос.УстановитьТелоИзСтроки(текстЗапросаВФорматеJSON,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);
Попытка
ответ = соединение.ОтправитьДляОбработки(запрос);
ответСтрока = ответ.ПолучитьТелоКакСтроку();
Исключение
Сообщить("Не удалось установить соединение с сервером: "
+ Символы.ПС + ИнформацияОбОшибке().Описание+" для получения данных по наличию налоговых накладных. Повторная попытка будет выполнена позже.", СтатусСообщения.Важное);
Возврат Неопределено;
КонецПопытки;
Попытка
//++Троцкий 24022024
Если Путь	=	"nn" Тогда
ЧтениеJSON = Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(ответСтрока);
Данные = ПрочитатьJSON(ЧтениеJSON, Ложь);
ИначеЕсли Путь = "status" ИЛИ Путь = "incomingndcopyorder" Тогда
Данные = ОбщегоНазначения.ЗначениеИзСтрокиXML(ответСтрока);
КонецЕсли;
//--
Исключение
//Троцкий 04012023 Отключил оповещение т.к. оно спонтанно может появляться еще еще док в БуХ не попал. Достаточно сообщений в случае невозможности вообще с сервером бухи соеденится
//Сообщить("Не удалось прочитать данные по наличию налоговых накладных с базы BAS Бух. Повторная попытка будет выполнена позже.");
КонецПопытки;
Возврат Данные;
КонецФункции

Ответ (Сторона 2)

Функция ДанныеДоступовУстановитьЛогинПароль(Запрос)
Ответ = Новый HTTPСервисОтвет(200);
//Расшифровка полученніх данніх
СтрокаНоменклатураJSON = Запрос.ПолучитьТелоКакСтроку();
ПоступившиеДанные = ОбщегоНазначения.ЗначениеИзСтрокиXML(СтрокаНоменклатураJSON);
//Формирование ответа в обратную сторону
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВСтрокуXML(ТаблицаЗначений), КодировкаТекста.UTF8);
Возврат Ответ;
КонецФункции