|
Уровень дерева значений по текущей строке.
| ☑ |
0
San335
29.09.21
✎
10:09
|
Доброго времени суток.
Есть управляемая форма, на ней дерево значений. При выполнении обработчика событий "Выбор" нужно определить уровень дерева значений.
Подскажите плиз, возможно ли по текущей строке дерева значений определить ее уровень? Если да, то как?
|
|
1
Ненавижу 1С
гуру
29.09.21
✎
10:12
|
(0) СтрокаДереваЗначений (ValueTreeRow)
Уровень (Level)
Синтаксис:
Уровень()
Возвращаемое значение:
Тип: Число.
Для строки, не имеющей родителя, уровень будет равен 0.
Описание:
Получает уровень строки дерева значений.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Нумерация уровней дерева значений начинается с 0.
Использование в версии:
Доступен, начиная с версии 8.0.
|
|
2
San335
29.09.21
✎
10:27
|
(1) На управляйках не прокатит. Дерево на клиенте - это реквизит с типом ДанныеФормыДерево. Текущая строка - это ДанныеФормыЭлементДерева.
А уровень() применяется непосредственно к самому ДеревуЗначений. Только если попробовать с клиента из текущих данных передать реквизиты в серверный метод и там просто найти эту строку в самом дереве через НайтиСтроки().....
|
|
3
pechkin
29.09.21
✎
10:29
|
проще уровень вычислить в цикле по родителю
|
|
4
San335
29.09.21
✎
10:30
|
(3) Рекурсией?
|
|
5
pechkin
29.09.21
✎
10:31
|
(4) циклом пока родитель <> неопределено
|
|
6
Kassern
29.09.21
✎
10:35
|
(0) а разве ВыбраннаяСтрока в параметрах процедуры не будет текущим уровнем?
|
|
7
San335
29.09.21
✎
10:36
|
(6) Нет.Это индекс на строку из ДанныеФормыЭлементДерева.
|
|
8
San335
29.09.21
✎
10:47
|
(5) Типа вот такого?
&НаКлиенте
Функция ПолучитьУровеньДереваТекущейСтрокиКлиент(ТекущаяСтрока)
УровеньТекущейСтроки = 0;
РодительТекущейСтроки = ТекущаяСтрока.ПолучитьРодителя();
Пока РодительТекущейСтроки <> Неопределено Цикл
УровеньТекущейСтроки = УровеньТекущейСтроки + 1;
РодительТекущейСтроки = РодительТекущейСтроки.ПолучитьРодителя();
КонецЦикла;
Возврат УровеньТекущейСтроки;
КонецФункции
|
|
9
acht
29.09.21
✎
10:47
|
(7) > индекс на строку
Да сколько ж можно-то... Идентификатор это, идентификатор. Начни изменять дерево, добавлять и удалть узлы и все увидишь.
|
|
10
San335
29.09.21
✎
10:51
|
(9) Ок, оговорился в терминах. Но как он может помочь найти строку, которая может находиться на предпоследнем уровне дерева?
|
|
11
pechkin
29.09.21
✎
10:58
|
(8) да
|
|
12
San335
29.09.21
✎
11:05
|
(11) Благодарю за помощь!
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой