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