====== Передача Таблицы Значений через 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); СтруктураОтвета = Новый Структура; МассивОшибок = Новый Массив; СтруктураОтвета.Вставить("data"); СтруктураОтвета.Вставить("error",МассивОшибок); //Разбираем поступившие данніе Попытка СтрокаНоменклатураJSON = Запрос.ПолучитьТелоКакСтроку(); ПоступившиеДанные = ОбщегоНазначения.ЗначениеИзСтрокиXML(СтрокаНоменклатураJSON); Исключение МассивОшибок.Добавить("Не удалось разобрать поступившие данные"); КонецПопытки; Если МассивОшибок.Количество()=0 Тогда //Выполняем операции КонецЕсли; //Формируем ответ Ответ.УстановитьТелоИзСтроки(ОбщегоНазначения.ЗначениеВСтрокуXML(СтруктураОтвета), КодировкаТекста.UTF8); Возврат Ответ; КонецФункции