Как программно Свернуть / Развернуть дерево значений УФ 1С 8

Как программно Свернуть / Развернуть дерево значений УФ 1С 8

Если нужно свернуть / развернуть дерево значений на управляемой форме программно тогда можно использовать одноименные методы на клиенте.

Методы имеют следующие параметры:

<ИдентификаторСтроки> (обязательный)

Тип: Число.

Идентификатор обрабатываемой строки

<СПодчиненными> (необязательный, только для разворачивания) — Значение по умолчанию: Ложь.

Тип: Булево.
Определяет необходимость раскрытия подчиненных узлов. Истина — раскрывать подчиненные узлы, Ложь — не раскрывать подчиненные узлы.

Элементы.Дерево.Развернуть(ИдентификаторСтроки, Истина);
Элементы.Дерево.Свернуть(ИдентификаторСтроки);

Пример 1

Элементы.Дерево.Развернуть(0, Истина);

Пример 2

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура РазвернутьВсе(Команда)
	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина); 

КонецПроцедуры

&НаКлиенте
Процедура Развернуть3(Команда)
	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Ложь); 	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина, 3); 

КонецПроцедуры

&НаКлиенте
Процедура Развернуть2(Команда)
	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), ЛОжь); 	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Истина, 2); 	
	
КонецПроцедуры

&НаКлиенте
Процедура СвернутьДерево(Команда)
	
	СвернутьРазвернутьДерево(Дерево.ПолучитьЭлементы(), Ложь); 
	
КонецПроцедуры


&НаКлиенте
Процедура СвернутьРазвернутьДерево(Дерево, Развернуть, Уровень = Неопределено) Экспорт 
	
	Если НЕ Уровень = Неопределено Тогда  		
		Уровень = Уровень - 1;
		Если Уровень= 0 Тогда
			Возврат;
		КонецЕсли; 		
	КонецЕсли;
    
    Для Каждого ТекСтр Из Дерево Цикл
        Строки = ТекСтр.ПолучитьЭлементы();
        Если Строки.Количество() > 0 Тогда
            СвернутьРазвернутьДерево(Строки, Развернуть, Уровень);

            Если Развернуть = Истина Тогда
                Элементы.Дерево.Развернуть(ТекСтр.ПолучитьИдентификатор());
            Иначе
                Элементы.Дерево.Свернуть(ТекСтр.ПолучитьИдентификатор());
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры

Функция СвернутьРазвернутьДерево(), позволяет свернуть или развернуть все дерево  до определенного уровня или полностью

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *