Выполнить обмен данными для узла информационной базы завершение длительной операции. Выполняет получение файла сообщения обмена из базы-корреспондента через веб-сервис.
// Выполняет получение файла сообщения обмена из базы-корреспондента через веб-сервис.
// Выполняет загрузку полученного файла сообщения обмена в эту базу.
//
// Параметры:
// Отказ - Булево - флаг отказа; поднимается в случае возникновения ошибки.
// УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого выполняется получение сообщения обмена.
// ИдентификаторФайла - УникальныйИдентификатор - Идентификатор файла.
// ДатаНачалаОперации - Дата - Дата начала загрузки.
// ПараметрыАутентификации - Структура. Содержит параметры аутентификации на веб-сервисе (Пользователь, Пароль).
//
Процедура ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЗавершениеДлительнойОперации(
Отказ,
Знач УзелИнформационнойБазы,
Знач ИдентификаторФайла,
Знач ДатаНачалаОперации,
Знач ПараметрыАутентификации = Неопределено,
ВыдаватьОшибку = Ложь) Экспорт
ПроверитьВозможностьВыполненияОбменов();
ПроверитьИспользованиеОбменаДанными();
УстановитьПривилегированныйРежим(Истина);
Попытка
ФайлСообщенияОбмена = ПолучитьФайлИзХранилищаВСервисе(Новый УникальныйИдентификатор(ИдентификаторФайла), УзелИнформационнойБазы,, ПараметрыАутентификации);
Исключение
ЗафиксироватьЗавершениеОбменаСОшибкой(УзелИнформационнойБазы,
Перечисления.ДействияПриОбмене.ЗагрузкаДанных,
ДатаНачалаОперации,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Если ВыдаватьОшибку Тогда
ВызватьИсключение;
Иначе
Отказ = Истина;
КонецЕсли;
Возврат;
КонецПопытки;
// Загрузка файла сообщения обмена в эту базу.
ПараметрыОбменаДанными = ПараметрыОбменаДаннымиЧерезФайлИлиСтроку();
ПараметрыОбменаДанными.УзелИнформационнойБазы = УзелИнформационнойБазы;
ПараметрыОбменаДанными.ПолноеИмяФайлаСообщенияОбмена = ФайлСообщенияОбмена;
ПараметрыОбменаДанными.ДействиеПриОбмене = Перечисления.ДействияПриОбмене.ЗагрузкаДанных;
ПараметрыОбменаДанными.ДатаНачалаОперации = ДатаНачалаОперации;
Попытка
ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСтроку(ПараметрыОбменаДанными);
Исключение
ЗафиксироватьЗавершениеОбменаСОшибкой(УзелИнформационнойБазы,
Перечисления.ДействияПриОбмене.ЗагрузкаДанных,
ДатаНачалаОперации,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Если ВыдаватьОшибку Тогда
ВызватьИсключение;
Иначе
Отказ = Истина;
КонецЕсли;
КонецПопытки;
Попытка
УдалитьФайлы(ФайлСообщенияОбмена);
Исключение
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецПроцедуры
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ВыполнитьОбновлениеИнформационнойБазыВФоне (БСП)
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы (БСП)
СостояниеДлительнойОперацииДляУзлаИнформационнойБазы (БСП)
ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСтроку (БСП)
ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы (БСП)
ВыполнитьВыгрузкуДляУзлаИнформационнойБазы (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)