Имя: Пароль:
1C
 
Дерево значений ; Как по номеру строки получить строку
,
0 ЭЦ
 
23.09.21
10:12
Господа.
Имеется управляемая форма.
На форме дерево значений.

Использую обработчик события Выбор()
ТаблицаДереваВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Второй параметр возвращает номер выбранной строки.
Теперь надо по этому номеру получить саму строку - ветвь дерева в которую ткнул пользователь.

Если сделать так
ТаблицаДерева.Строки[ВыбраннаяСтрока]
то получим строку нулевого уровня дерева, что не совпадает с тем куда он ткнул.

Вопрос : Как все таки получить строку выбранную пользователем.
Прошу подсказать
1 2S
 
23.09.21
10:14
ТаблицаДерева[ВыбраннаяСтрока].Строки?
2 ЭЦ
 
23.09.21
10:22
(1) Получение элемента по индексу не определено
3 1Садовник
 
23.09.21
10:22
Элемент.ТекущиеДанные
4 Kassern
 
23.09.21
10:23
(0) ВыбраннаяСтрока это всего лишь уровень вложенности в данном обработчике. Можно получить строчку ДЗ.НайтиПоИдентификатору(ВыбраннаяСтрока)
5 Kassern
 
23.09.21
10:26
(0) если нужно получить именно значение колонки, куда щелкнул юзвер, то можно из Поле.Имя вычленить имя колонки нужной и через [] использовать. Может как то проще можно.
6 ЭЦ
 
23.09.21
10:34
(4) Работает.
Только надо использовать не элемент формы а реквизит.
Спасибо за эффективную подсказку
7 fisher
 
23.09.21
10:35
(6) Но можно еще проще.
Элемент.ТекущиеДанные
8 Droning1C
 
23.09.21
10:37
(0) а если строк несколько?
9 fisher
 
23.09.21
10:39
Если активирован множественный выбор, тогда да - массив идентификаторов выбранных строк обрабатывать.
10 fisher
 
23.09.21
10:43
Ключ к пониманию - что это не номер строки, а именно идентификатор. И нельзя его использовать как номер. Многие путают, потому что в обычной таблице после начального заполнения идентификаторы могут совпадать с номерами. И тогда это вообще плавающую ошибку дает. Хорошо что в дереве сразу на мине подорвало.
11 Droning1C
 
23.09.21
10:48
12 fisher
 
23.09.21
10:53
(11) Мне уже ничего не поможет.
Но для события выбора не надо анализировать выбранные строки. Вторым параметром сразу их массив прилетит.
А по ссылке не понял нафига ты так делал:

   СтрокаКоллекции = Объект.СоставЗаказа.НайтиПоИдентификатору(Идентификатор);
    ИндексСтрокиКоллекции = Объект.СоставЗаказа.Индекс(СтрокаКоллекции);
    МассивВыделеннойНоменклатуры.Добавить(Объект.СоставЗаказа[ИндексСтрокиКоллекции].Номенклатура);

Когда достаточно так:

   СтрокаКоллекции = Объект.СоставЗаказа.НайтиПоИдентификатору(Идентификатор);
    МассивВыделеннойНоменклатуры.Добавить(СтрокаКоллекции.Номенклатура);
13 ЭЦ
 
23.09.21
10:59
(7) Элемент.ТекущиеДанные - позволяет получить данные строки,  а требуется собственно строка
14 fisher
 
23.09.21
11:01
(13) В случае дерева на форме "данные строки" - это и будет ссылка на строку дерева (т.е. собственно строка).
15 ЭЦ
 
23.09.21
11:07
(13) Элемент.ТекущиеДанные.Родитель -  не работает
значит это не "собственно строка"
16 fisher
 
23.09.21
11:10
(15) Такого свойства у ДанныеФормыЭлементДерева нет. Есть метод ПолучитьРодителя()
17 ЭЦ
 
23.09.21
11:17
(14,16) Это правда - спасибо