Перенести отбор СКД

acsent 90 2 14

Перенести отбор СКД из одного компоновщика в другой

Процедура ПеренестиОтбор(ОтборПриемник, ОтборИсточник)
	
	Для каждого ЭлементИсточник Из ОтборИсточник.Элементы Цикл
		
		Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
			
			Если ТипЗнч(ЭлементИсточник.ЛевоеЗначение) = Тип("ПолеКомпоновкиДанных") Тогда
			
				Если ОтборПриемник.ДоступныеПоляОтбора.НайтиПоле(ЭлементИсточник.ЛевоеЗначение) = Неопределено Тогда
					Продолжить;
				КонецЕсли;	
			
			КонецЕсли;
		
		КонецЕсли;	
		
		ЭлементПриемник = ОтборПриемник.Элементы.Добавить(ТипЗнч(ЭлементИсточник));
		ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);
		
		Если ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			ПеренестиОтбор(ЭлементПриемник, ЭлементИсточник);
		КонецЕсли;	
		
	КонецЦикла;	
	
КонецПроцедуры
1

Комментарии

rozer
#1, 25 августа 2023 12:08

будет ошибка в строке

ОтборПриемник.ДоступныеПоляОтбора.НайтиПоле(ЭлементИсточник.ЛевоеЗначение) = Неопределено Тогда

в случае когда ОтборПриемник это ГруппаЭлементовОтбораКомпоновкиДанных
Поправил:

Процедура ПеренестиОтбор(ОтборПриемник, ОтборИсточник, ДоступныеПоляОтбораПриемника)
    
    Для каждого ЭлементИсточник Из ОтборИсточник.Элементы Цикл
        
        Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
            
            Если ТипЗнч(ЭлементИсточник.ЛевоеЗначение) = Тип("ПолеКомпоновкиДанных") Тогда
            
                Если ДоступныеПоляОтбораПриемника.НайтиПоле(ЭлементИсточник.ЛевоеЗначение) = Неопределено Тогда
                    Продолжить;
                КонецЕсли;    
            
            КонецЕсли;
        
        КонецЕсли;    
        
        ЭлементПриемник = ОтборПриемник.Элементы.Добавить(ТипЗнч(ЭлементИсточник));
        ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);
        
        Если ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
            ПеренестиОтбор(ЭлементПриемник, ЭлементИсточник, ДоступныеПоляОтбораПриемника);
        КонецЕсли;    
        
    КонецЦикла;    
    
КонецПроцедуры


См. также

ПеренестиВсеФайлыВТома (БСП)

Отслеживание изменений отбора

ПеренестиРезультатыПроверкиПодписей (БСП)

ПеренестиЭлектронныеПодписиИСертификатыШифрованияВРегистрыСведений (БСП)

ПеренестиФайлы (БСП)

ПеренестиФайлыВПапку (БСП)

ПеренестиЗначенияИзРеквизитовФормыВОбъект (БСП)

ПеренестиЗащищаемыеОбластиПерсональныхДанных (БСП)

Отбор по таблице значений

Модератору