Описание файла обмена данными. Возвращает описание сообщения обмена данными внешней системы.
// Возвращает описание сообщения обмена данными внешней системы.
//
// Параметры:
// ИдентификаторОбмена - Строка - идентификатор обмена данными на Портале 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
///////////////////////////////////////////////////////////////////////////////////////////////////////
ОписаниеДанныхФайлаКлассификатора (БСП)
ОписаниеПередаваемогоФайла (БСП)
ОписаниеВариантаНастройки (БСП)
ПараметрыОбменаДаннымиЧерезФайлИлиСтроку (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)