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