ОписаниеФайлаОбменаДанными (БСП)

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

Описание файла обмена данными. Возвращает описание сообщения обмена данными внешней системы.

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

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

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

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

ОписаниеДанныхФайлаКлассификатора (БСП)

ОписаниеПередаваемогоФайла (БСП)

ФайлОбменаДанными (БСП)

ОписаниеКолонкиМакета (БСП)

ОписаниеВариантаНастройки (БСП)

ОписаниеФайла (БСП)

ПараметрыОбменаДаннымиЧерезФайлИлиСтроку (БСП)

ПодтвердитьОбработкуФайлаОбменаДанными (БСП)

ОткрытьФайлВыгрузки (БСП)

TurboConf ИР адаптер 2.63