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