Есть дерево значений, которое надо показать на управляемой форме в развернутом виде.Сценарий 1Дерево заполняется единожды за сеанс работы с формой. В таком случае вопрос можно решить так:
&НаКлиенте
Процедура Заполнить(Команда)
Элементы.МоеДеревоЗначений.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни;
ЗаполнитьНаСервере(); // условная процедура, в которой происходит заполнение дерева
КонецПроцедуры
Если же в процессе работы, процедура ЗаполнитьДеревоНаФорме() вызывается несколько раз, то дерево перестает разворачиваться. Не работает и в случае, если в процедуре выше поменять строки местами.
Сценарий 2Дерево значений перезаполняется более 1 раза. Чтобы его развернуть, пишем так:
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
Для Каждого Строка ИЗ МоеДеревоЗначений.ПолучитьЭлементы() Цикл
Элементы.МоеДеревоЗначений.Развернуть(Строка.ПолучитьИдентификатор(), Истина);
КонецЦикла;
КонецПроцедуры
Как свернуть дерево значений?Если же откуда-то вы уже имеете развернутое дерево значений, то чтобы его свернуть можно взять на вооружение код из 2 сценария, но использовать при этом метод Свернуть:
&НаКлиенте
Процедура Свернуть(Команда)
Для Каждого Строка ИЗ МоеДеревоЗначений.ПолучитьЭлементы() Цикл
Элементы.МоеДеревоЗначений.Свернуть(Строка.ПолучитьИдентификатор());
КонецЦикла;
КонецПроцедуры
Сообщение отредактировал Vofka - 03.03.15, 15:16