Пример удаления строки из дерева значений на УФ

1. Divanoff 22 16.10.15 14:56 Сейчас в теме
День добрый.
Есть дерево значений на форме (УФ). Не могу понять как обратиться к индексу текущей строки дерева и удалить строку, пересчитав потом всю форму. Удалять надо только нижний уровень, соответственно если в верхнем уровне не останется подчиненных то тоже нужно его удалить.
Если у кого-то код такой есть, то буду благодарен, если поделитесь.
Спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. oslokot 190 19.04.16 10:35 Сейчас в теме
Удаление текущей строки (на клиенте)

УдаляемаяСтрока = ДеревоЗначений.НайтиПоИдентификатору(Элементы.ДеревоЗначений.ТекущиеДанные.ПолучитьИдентификатор());
ДеревоЗначений.ПолучитьЭлементы().Удалить(УдаляемаяСтрока);
huzden; Novichok777; Divanoff; +3 Ответить
3. Ndochp 103 19.12.17 17:51 Сейчас в теме
Так не работает, если удаляемая строка не на первом уровне. Если она в глубине работает заклинание

УдаляемаяСтрока.ПолучитьРодителя().ПолучитьЭлементы().Удалить(УдаляемаяСтрока);

Так как получить элементы тянет только один уровень.
На первом уровне может и нет родителя и заклинание упадёт, я не проверял, мне не надо. Но гибрида если что каждый думаю соберёт.
kabantus; user1463853; huzden; user727538; +4 Ответить
4. Jungle Murzik 10.01.20 18:47 Сейчас в теме
Реализовал так.
Здесь пустой родитель не удаляется (мне это не нужно). Но думаю, что логика понятна.

В моем коде в дереве может быть два уровня. Я могу выделить курсором либо строку нижнего уровня, либо родителя.
Соответственно удаляется либо первый уровень целиком, либо строка на втором уровне.

&НаКлиенте
Процедура Удалить(Команда)
	
	Если Элементы.Дерево.ТекущиеДанные <> Неопределено Тогда
		
		ид = Элементы.Дерево.ТекущиеДанные.ПолучитьИдентификатор();
		Стр = Дерево.НайтиПоИдентификатору(ид);
		Родитель = Стр.ПолучитьРодителя();
		
		Если Родитель = Неопределено Тогда
			Дерево.ПолучитьЭлементы().Удалить(Элементы.Дерево.ТекущиеДанные);
		Иначе
			Родитель.ПолучитьЭлементы().Удалить(Элементы.Дерево.ТекущиеДанные);
		КонецЕсли;
				
	КонецЕсли;
	
КонецПроцедуры
Показать
JinAir7460; +1 Ответить
5. Bosma 69 21.12.23 17:58 Сейчас в теме
(4)Тогда уж удаляем по индексу, примерно так :
ИндексСтроки = Родитель.ПолучитьЭлементы().Индекс(Стр);
Родитель.ПолучитьЭлементы().Удалить(ИндексСтроки);		
6. andryandry 97 24.01.24 10:37 Сейчас в теме
УдаляемаяСтрока = ДеревоЗначений.НайтиПоИдентификатору(Элементы.ДеревоЗначений.ТекущиеДанные.ПолучитьИдентификатор());
УдаляемаяСтрока.ПолучитьРодителя().ПолучитьЭлементы().Удалить(УдаляемаяСтрока);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот