ИдентификаторОбменДанными (БСП)

Автор: 1С
ОбщийМодуль.СервисОбменаСообщениями
БСП

Идентификатор обмен данными. Возвращает идентификатор обмена данными, который был создан в сервисе обмена

// Возвращает идентификатор обмена данными, который был создан в сервисе обмена
// данными с внешними системами.
//
// Возвращаемое значение:
//   Структура - содержит результат операции:
//    *КодОшибки - Булево  - Истина, если в не удалось получить информацию из сервиса;
//    *СообщениеОбОшибке   - Строка - описание ошибки для пользователя;
//    *ИдентификаторОбмена - Строка - идентификатор обмена данными.
//
Функция ИдентификаторОбменДанными(ИдентификаторСистемы, ОписаниеНастройки) Экспорт
	
	ЗаписатьИнформациюВЖурналРегистрации(
		НСтр("ru = 'Начало получения идентификатора загрузки данных.'"),
		Ложь);
	
	РезультатОперации = Новый Структура;
	РезультатОперации.Вставить("КодОшибки",           "");
	РезультатОперации.Вставить("СообщениеОбОшибке",   "");
	РезультатОперации.Вставить("ИдентификаторОбмена", "");
	
	ПараметрыПодключения = ИнициализироватьПараметрыПодключения();
	
	URLОперации = URLОперацииСервиса("/exchangeId/getNew");
	
	Результат = ДанныеАутентификации(URLОперации);
	
	Если Результат.Ошибка Тогда
		РезультатОперации.КодОшибки = КодОшибкиНеверныйЛогинИлиПароль();
		РезультатОперации.СообщениеОбОшибке = Результат.ИнформацияОбОшибке;
		Возврат РезультатОперации;
	КонецЕсли;
	
	ПараметрыЗапросаJSON = exchangeIdgetNew(
		ИдентификаторСистемы,
		ОписаниеНастройки,
		Результат.ДанныеАутентификации,
		ИнтернетПоддержкаПользователей.ДополнительныеПараметрыВызоваОперацииСервиса());
	
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Content-Type", "application/json");
	
	ПараметрыОтправки = Новый Структура;
	ПараметрыОтправки.Вставить("Метод"                   , "POST");
	ПараметрыОтправки.Вставить("ФорматОтвета"            , 1);
	ПараметрыОтправки.Вставить("Заголовки"               , Заголовки);
	ПараметрыОтправки.Вставить("ДанныеДляОбработки"      , ПараметрыЗапросаJSON);
	ПараметрыОтправки.Вставить("ФорматДанныхДляОбработки", 1);
	ПараметрыОтправки.Вставить("НастройкиПрокси"         , ПараметрыПодключения.НастройкиПроксиСервера);
	ПараметрыОтправки.Вставить("Таймаут"                 , 30);
	
	// Вызов операции сервиса.
	РезультатОтправки = ИнтернетПоддержкаПользователей.ЗагрузитьСодержимоеИзИнтернет(
		URLОперации,
		,
		,
		ПараметрыОтправки);
	
	Если Не ПустаяСтрока(РезультатОтправки.КодОшибки) Тогда
		
		РезультатОперации.КодОшибки         = ПереопределитьКодОшибкиСервиса(РезультатОтправки.КодСостояния);
		РезультатОперации.СообщениеОбОшибке = ПереопределитьСообщениеПользователю(РезультатОперации.КодОшибки);
		
		ЧастиСтрок = Новый Массив;
		ЧастиСтрок.Добавить(НСтр("ru = 'Не удалось получить идентификатор обмена данными.'"));
		ЧастиСтрок.Добавить(Символы.ПС);
		ЧастиСтрок.Добавить(РезультатОперации.СообщениеОбОшибке);
		ЧастиСтрок.Добавить(Символы.ПС);
		ЧастиСтрок.Добавить(Символы.ПС);
		ЧастиСтрок.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Техническая информация об ошибке:
				|При получении идентификатора обмена данными сервис вернул ошибку.
				|URL: %1
				|Код ошибки: %2
				|Подробная информация:
				|%3'"),
			URLОперации,
			РезультатОтправки.КодОшибки,
			РезультатОтправки.ИнформацияОбОшибке));
		
		ИнформацияОбОшибке = Новый ФорматированнаяСтрока(ЧастиСтрок);
		
		ЗаписатьИнформациюВЖурналРегистрации(
			Строка(ИнформацияОбОшибке),
			Истина);
		
		Возврат РезультатОперации;
		
	КонецЕсли;
	
	ПрочитатьДанные_exchangeIdgetNew(
		РезультатОтправки.Содержимое,
		РезультатОперации.ИдентификаторОбмена);
	
	ЗаписатьИнформациюВЖурналРегистрации(
		НСтр("ru = 'Завершено получение идентификатора обмена данными.'"),
		Ложь);
	
	Возврат РезультатОперации;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

УдалитьИдентификаторОбменаДанными (БСП)

ПоддерживаетсяВерсияСИдентификаторомОбменаДанными (БСП)

ПриОпределенииДоступныхВнешнихСистем (БСП)

ИдентификаторЭтогоУзлаДляОбмена (БСП)

ИдентификаторУзлаКорреспондентаДляОбмена (БСП)

ВариантыНастроекОбменаДляКорреспондента (БСП)

ВариантНастройкиОбменаДляКорреспондента (БСП)

ВариантОбменаДанными (БСП)

TurboConf 6 - расширение Конфигуратора 1С