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

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

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

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

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

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

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

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

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

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

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

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

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

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

TurboConf 6 - расширение Конфигуратора 1С