Начальное отображение дерева #305738


#0 by selenat
На форме табл. поле с типом ДеревоЗначений. По нажатию на кнопку программно формирую дерево, с которым связано это ТП. У ТП свойство "Начальное отображение дерева" = РаскрыватьВсеУровни. Но дерево в ТП все равно формируется в свернутом виде. Вопрос - почему и как развернуть все уровни при его формировании?
#1 by selenat
ап
#2 by GenV
Тоже с такой же гадостью столкнулся :( Как я понял этот флаг влияет на первоначальное отображение дерева. Можно, например, менять строку к данным дерева и создавать колонки или как-нибудь через эмуляцию вызовов клавиатуры извернуться.
#3 by selenat
через эмуляцию вызовов клавиатуры - это сильно. Видимо придется сделать у дерева еще одно булево поле, устанавливать для него истина при формировании дерева, а потом в ПриВыводеСтроки если истина, то разворачивать ее и присваивать этому полю ложь. Хотя некошерно как-то. Какие еще есть идеи?
#4 by rs
Синтаксис: Развернуть(<Строка>, <С подчиненными>) Параметры: <Строка> (обязательный) Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующий объектов. <С подчиненными> (необязательный) Тип: Булево. Определяет необходимость раскрытия подчиненных узлов. Истина - раскрывать подчиненные узлы, Ложь - не раскрывать подчиненные узлы. Значение по умолчанию: Ложь Описание: Разворачивает узел в указанной строке дерева. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. Примечание: Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева. Пример: // Разворот текущей строки в дереве:
#5 by GenV
Это вариант! Только придется цикл делать по верхним строкам, что бы все развернуть ...
#6 by selenat
и на что этот цикл вешать?
#7 by GenV
А зачем вешать? Заполнил ДЗ по кнопке, в конце прошелся по первому уровню и развернул.
#8 by selenat
а как пройтись по первому уровню? Для каждого СтрокаТП из ЭлементыФормы.Бонусы Цикл выдает ошибку "Итератор для значения не определен".
#9 by selenat
Так как можно обойти строки ТП?
#10 by rs
Для каждого СтрокаТП из ЭлементыФормы.Бонусы.Строки Цикл
#11 by selenat
Такое я тоже пробовал: Поле объекта не обнаружено (Строки) Еще варианты?
#12 by GenV
Немного некоректно тебе сказали. Для каждого СтрокаТП из Бонусы.Строки Цикл, где Бонусы - данные ДЗ из таблицного поля.
#13 by rs
Для каждого СтрокаТП из Бонусы.Строки Цикл
#14 by selenat
как перебрать строки дерева (а не табличного поля, с ним связанного) я знаю. Но "Развернуть"  - это ведь метод строки табличного поля...
#15 by selenat
КонецЦикла;     Сваливает предприятие без всяких сообщений об ошибках.
#17 by selenat
:)))
#18 by rs
:) а не получиться сделать корневую строку одну, остальные подчинить ей и развернуть уже эту корневую строку?
#19 by selenat
некрасиво будет выглядеть. Юзеры этого не поймут.
#20 by rs
Это рабочий код
#21 by rs
Проверил код из на 8.1.9 работает
#22 by selenat
Да. А вот так действительно работает. Спасибо большое! Делаю в цикле после создания строки верхнего уровня ЭлементыФормы.Бонусы.Развернуть(СтрокаВозврат,Истина); и это срабатывает. В чем разница по сравнению с - неясно. В обоих случаях в Развернуть подставляется строка дерева значений...
#23 by selenat
интересно. у меня 8.0.18...
#24 by GenV
+1 именно это я и емил ввиду. На 8.0.18 тоже работает. А у тебя никаких зацикливаний при выводе строки и т.п. не может быть?
#25 by rs
+1 проверил еще и на 8.0.18 тоже работает
#26 by selenat
(24,25) да действительно. Воткнул не туда. Тоже работает. Еще раз спасибо!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С