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