peredacha_tablicy_znachenij_cherez_http-servis

Передача Таблицы Значений через 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);
	
	Возврат Ответ;
КонецФункции
  • /sites/data/pages/peredacha_tablicy_znachenij_cherez_http-servis.txt
  • Последнее изменение: 2024/12/25 09:05
  • tro