Как программно свернуть/развернуть дерево значений на управляемой форме? Желательно &НаКлиенте.
1 2 3 4 5 6 7 8 9 10 11 12 |
КоллекцияЭлементовДерева=ДеревоНоменклатуры.ПолучитьЭлементы(); //Свернуть дерево Для Каждого Строка Из КоллекцияЭлементовДерева Цикл ИдентификаторСтроки=Строка.ПолучитьИдентификатор(); Элементы.ДеревоНоменклатуры.Свернуть(ИдентификаторСтроки); КонецЦикла; //Развернуть дерево Для Каждого Строка Из КоллекцияЭлементовДерева Цикл ИдентификаторСтроки=Строка.ПолучитьИдентификатор(); Элементы.ДеревоНоменклатуры.Развернуть(ИдентификаторСтроки); КонецЦикла; |
Для выделенной, текущей строки:
1 2 3 4 5 6 7 8 9 10 |
// Разворот текущей строки в дереве: Строка = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока; ЭлементыФормы.ТабличноеПоле.Развернуть(Строка, Истина); // Определим, развернут ли узел дерева в указанной строке. УзелРазвернут = ЭлементыФормы.ТабличноеПоле.Развернут(Строка); Если УзелРазвернут Тогда // Если Развернут, то Свернуть ЭлементыФормы.ТабличноеПоле.Свернуть(Строка); КонецЕсли; |
1 2 3 4 |
//перебором свернуть все Выделенные строки дерева Табличного поля Для каждого Строка Из ЭлеменетыФормы.ТабличноеПоле1.ВыделенныеСтроки Цикл ЭлементыФормы.ТабличноеПоле.Свернуть(Строка); КонецЦикла; |
Хотя конечно есть Ctrl+Shift+"+" и Ctrl+Shift+"-".
P.S. Для Табличного поля с галочкой Дерево(отображающего справочник), перебрать строки НЕВОЗМОЖНО!!!
Примеры вида:
1 2 3 4 5 |
Для каждого Строка Из ЭлементыФормы.тпОбъекты.Строки Цикл // или Для каждого Строка Из ЭлементыФормы.тпОбъекты.ТекущаяСтрока.Строки Цикл ЭлементыФормы.тпОбъекты.Свернуть(Строка); КонецЦикла; |
— НЕ РАБОТАЮТ!!!
Для СправочникСписок (ДокументСписок) итератора нет. Это не коллекция значений, перебрать не сможете. Дерево здесь ни при чем.
Можно работать со строками либо через ПриПолученииДанных (предпочтительнее по скорости), либо ПриВыводеСтроки.