Вход | Регистрация
 

Дерево значений ; Как по номеру строки получить строку

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

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

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

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

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

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

Список тем форума
 
AdBlock убивает бесплатный контент. 1Сергей
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.