ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиВМоделиСервиса
БСП

Выполнить действие сценария обмена данными во второй информационной базе. Выполнить действие сценария обмена, заданное строкой таблицы значений, для второй из двух обменивающихся ИБ.

// Выполнить действие сценария обмена, заданное строкой таблицы значений, для второй из двух обменивающихся ИБ.
//
// Параметры:
// ИндексСтрокиСценария - Число - Индекс строки в таблице СценарийОбменаДанными.
// СценарийОбменаДанными - ТаблицаЗначений.
//
Процедура ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	СтрокаСценария = СценарийОбменаДанными[ИндексСтрокиСценария];
	
	Если СтрокаСценария.ПорядковыйНомерВыполнения = 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
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса (БСП)

ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе (БСП)

ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса (БСП)

ВыполнитьДействиеОбменаДляУзлаИнформационнойБазы (БСП)

ВыполнитьДействияПриЗагрузкеПользователяИнформационнойБазы (БСП)

ВыполнитьОбменДаннымиПоСценариюОбменаДанными (БСП)

ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСтроку (БСП)

ВыполнитьОбменДаннымиПоРегламентномуЗаданию (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз