ПользовательскийСоставПланаОбмена (БСП)

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

Пользовательский состав плана обмена. Возвращает состав плана обмена, заданный пользователем.

// Возвращает состав плана обмена, заданный пользователем.
// Пользовательский состав плана обмена определяется правилами регистрации объектов
// и настройками узла, которые задал пользователь.
//
// Параметры:
//  Получатель - ПланОбменаСсылка - ссылка на узел плана обмена,
//               для которого требуется получить пользовательский состав плана обмена.
//
//  Возвращаемое значение:
//   Соответствие:
//     * Ключ     - Строка - полное имя объекта метаданных входящего в состав плана обмена;
//     * Значение - ПеречислениеСсылка.РежимыВыгрузкиОбъектовОбмена - режим выгрузки объекта.
//
Функция ПользовательскийСоставПланаОбмена(Знач Получатель) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	Результат = Новый Соответствие;
	
	СвойстваПолучателя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Получатель,
		ОбщегоНазначения.ИменаРеквизитовПоТипу(Получатель, Тип("ПеречислениеСсылка.РежимыВыгрузкиОбъектовОбмена")));
	
	Приоритеты = ПриоритетыРежимовВыгрузкиОбъектов();
	ИмяПланаОбмена = Получатель.Метаданные().Имя;
	Правила = ОбменДаннымиПовтИсп.ПравилаРегистрацииОбъектовПланаОбмена(ИмяПланаОбмена);
	Правила.Индексы.Добавить("ОбъектМетаданныхИмя");
	
	Для Каждого Элемент Из Метаданные.ПланыОбмена[ИмяПланаОбмена].Состав Цикл
		
		ИмяОбъекта = Элемент.Метаданные.ПолноеИмя();
		ПравилаОбъекта = Правила.НайтиСтроки(Новый Структура("ОбъектМетаданныхИмя", ИмяОбъекта));
		РежимВыгрузки = Неопределено;
		
		Если ПравилаОбъекта.Количество() = 0 Тогда // Правила регистрации не заданы.
			
			РежимВыгрузки = Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьВсегда;
			
		Иначе // заданы правила регистрации
			
			Для Каждого ПРО Из ПравилаОбъекта Цикл
				
				Если ЗначениеЗаполнено(ПРО.ИмяРеквизитаФлага) Тогда
					РежимВыгрузки = МаксимальныйРежимВыгрузкиОбъекта(СвойстваПолучателя[ПРО.ИмяРеквизитаФлага], РежимВыгрузки, Приоритеты);
				КонецЕсли;
				
			КонецЦикла;
			
			Если РежимВыгрузки = Неопределено
				ИЛИ РежимВыгрузки = Перечисления.РежимыВыгрузкиОбъектовОбмена.ПустаяСсылка() Тогда
				РежимВыгрузки = Перечисления.РежимыВыгрузкиОбъектовОбмена.ВыгружатьПоУсловию;
			КонецЕсли;
			
		КонецЕсли;
		
		Результат.Вставить(ИмяОбъекта, РежимВыгрузки);
		
	КонецЦикла;
	
	УстановитьПривилегированныйРежим(Ложь);
	
	Возврат Результат;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

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

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

ПроверитьСоставПланаОбмена (БСП)

ПланОбменаСодержитОбъект (БСП)

СоставПланаОбмена (БСП)

РежимВыгрузкиОбъекта (БСП)

НазначениеПланаОбмена (БСП)

ЕстьМакетПланаОбмена (БСП)

ПланыОбменаРИБ (БСП)

ПриСохраненииПользовательскихНастроекНаСервере (БСП)

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