|
|
|
Начальное отображение дерева | ☑ | ||
|---|---|---|---|---|
|
0
selenat
07.11.07
✎
13:05
|
На форме табл. поле с типом ДеревоЗначений. По нажатию на кнопку программно формирую дерево, с которым связано это ТП. У ТП свойство "Начальное отображение дерева" = РаскрыватьВсеУровни. Но дерево в ТП все равно формируется в свернутом виде. Вопрос - почему и как развернуть все уровни при его формировании?
|
|||
|
1
selenat
07.11.07
✎
13:15
|
ап
|
|||
|
2
GenV
07.11.07
✎
13:23
|
(0) Тоже с такой же гадостью столкнулся :( Как я понял этот флаг влияет на первоначальное отображение дерева.
Можно, например, менять строку к данным дерева и создавать колонки или как-нибудь через эмуляцию вызовов клавиатуры извернуться. |
|||
|
3
selenat
07.11.07
✎
13:32
|
(2) через эмуляцию вызовов клавиатуры - это сильно.
Видимо придется сделать у дерева еще одно булево поле, устанавливать для него истина при формировании дерева, а потом в ПриВыводеСтроки если истина, то разворачивать ее и присваивать этому полю ложь. Хотя некошерно как-то. Какие еще есть идеи? |
|||
|
4
rs
07.11.07
✎
13:48
|
ТабличноеПоле (TableBox)
Развернуть (Expand) Синтаксис: Развернуть(<Строка>, <С подчиненными>) Параметры: <Строка> (обязательный) Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующий объектов. <С подчиненными> (необязательный) Тип: Булево. Определяет необходимость раскрытия подчиненных узлов. Истина - раскрывать подчиненные узлы, Ложь - не раскрывать подчиненные узлы. Значение по умолчанию: Ложь Описание: Разворачивает узел в указанной строке дерева. Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения. Примечание: Используется в случае, если с табличным полем связано дерево значений или список справочника в виде дерева. Пример: // Разворот текущей строки в дереве: Строка = ЭлементыФормы.ТабличноеПоле.ТекущаяСтрока; ЭлементыФормы.ТабличноеПоле.Развернуть(Строка, Истина); |
|||
|
5
GenV
07.11.07
✎
14:03
|
(4) Это вариант! Только придется цикл делать по верхним строкам, что бы все развернуть ...
|
|||
|
6
selenat
07.11.07
✎
14:23
|
(5) и на что этот цикл вешать?
|
|||
|
7
GenV
07.11.07
✎
14:29
|
(6) А зачем вешать? Заполнил ДЗ по кнопке, в конце прошелся по первому уровню и развернул.
|
|||
|
8
selenat
07.11.07
✎
14:39
|
(7) а как пройтись по первому уровню?
Для каждого СтрокаТП из ЭлементыФормы.Бонусы Цикл выдает ошибку "Итератор для значения не определен". |
|||
|
9
selenat
07.11.07
✎
15:01
|
Так как можно обойти строки ТП?
|
|||
|
10
rs
07.11.07
✎
15:02
|
Для каждого СтрокаТП из ЭлементыФормы.Бонусы.Строки Цикл
|
|||
|
11
selenat
07.11.07
✎
15:07
|
(10) Такое я тоже пробовал:
Поле объекта не обнаружено (Строки) Еще варианты? |
|||
|
12
GenV
07.11.07
✎
15:08
|
(11) Немного некоректно тебе сказали. Для каждого СтрокаТП из Бонусы.Строки Цикл, где Бонусы - данные ДЗ из таблицного поля.
|
|||
|
13
rs
07.11.07
✎
15:09
|
Для каждого СтрокаТП из Бонусы.Строки Цикл
|
|||
|
14
selenat
07.11.07
✎
15:11
|
(12) как перебрать строки дерева (а не табличного поля, с ним связанного) я знаю. Но "Развернуть" - это ведь метод строки табличного поля...
|
|||
|
15
selenat
07.11.07
✎
15:16
|
Для каждого СтрокаТП из Бонусы.Строки Цикл
ЭлементыФормы.Бонусы.Развернуть(СтрокаТП,Истина); КонецЦикла; Сваливает предприятие без всяких сообщений об ошибках. |
|||
|
16
rs
07.11.07
✎
15:16
|
Для каждого СтрокаТП из Бонусы.Строки Цикл
ЭлементыФормы.ТабличноеПоле.Развернуть(СтрокаТП , Истина); КонецЦикла; |
|||
|
17
selenat
07.11.07
✎
15:18
|
(16) :)))
|
|||
|
18
rs
07.11.07
✎
15:22
|
(17) :) а не получиться сделать корневую строку одну, остальные подчинить ей и развернуть уже эту корневую строку?
|
|||
|
19
selenat
07.11.07
✎
15:26
|
(18) некрасиво будет выглядеть. Юзеры этого не поймут.
|
|||
|
20
rs
07.11.07
✎
15:27
|
(17) Это рабочий код
ДеревоМетаданных.Строки.Очистить(); СтрМетаданные = ДеревоМетаданных.Строки.Добавить(); СтрМетаданные.Метаданные = "Метаданные"; СтрТипОбъекта = СтрМетаданные.Строки.Добавить(); СтрТипОбъекта.Метаданные = "Справочники"; Для Каждого Стр Из Метаданные.Справочники Цикл СтрОбъект = СтрТипОбъекта.Строки.Добавить(); СтрОбъект.Метаданные = Стр; КонецЦикла; ЭлементыФормы.ДеревоМетаданных.Развернуть(СтрМетаданные, Истина); |
|||
|
21
rs
07.11.07
✎
15:34
|
(19) Проверил код из (15) на 8.1.9 работает
|
|||
|
22
selenat
07.11.07
✎
15:35
|
(20) Да. А вот так действительно работает. Спасибо большое! Делаю в цикле после создания строки верхнего уровня
ЭлементыФормы.Бонусы.Развернуть(СтрокаВозврат,Истина); и это срабатывает. В чем разница по сравнению с (15) - неясно. В обоих случаях в Развернуть подставляется строка дерева значений... |
|||
|
23
selenat
07.11.07
✎
15:38
|
(21) интересно. у меня 8.0.18...
|
|||
|
24
GenV
07.11.07
✎
15:47
|
(15) +1 именно это я и емил ввиду.
(23) На 8.0.18 тоже работает. А у тебя никаких зацикливаний при выводе строки и т.п. не может быть? |
|||
|
25
rs
07.11.07
✎
15:50
|
(24) +1 проверил (15) еще и на 8.0.18 тоже работает
|
|||
|
26
selenat
07.11.07
✎
15:52
|
(24,25) да действительно. Воткнул не туда. Тоже работает. Еще раз спасибо!
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |