Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ДеревоЗначений
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
VolandMaster
Доброго времени суток!
Ребята подскажите пожалуйста как в ДеревеЗначений определить нижестоящий элемент.
Vofka
Что значит определить?
VolandMaster
Цитата(Vofka @ 29.04.14, 8:51) необходимо зарегистрироваться для просмотра ссылки
Что значит определить?

На форме в таб части деревозначений, при удалении элемента в дереве, мне нужно удалить из регистра все строки которые отвечают элементам вышестощим и нижестоящим относительно удаленногго элемента в дереве, вышестоящие элементы можно определить по родителю, не получается определить элементы которые стоят ниже.

Определить - получить его ссылку.
Petre
".Строки"?

В рекурсиве...
Домовик
задача в принципе типичная. зачем тогда ДеревоЗначений в системе, если по нему нельзя ориентироваться.

значит, решение должно быть в восьмерке.
VolandMaster
Цитата(Petre @ 29.04.14, 9:27) необходимо зарегистрироваться для просмотра ссылки
".Строки"?

В рекурсиве...

Я вижу только верхний уровень, не знаю как спуститься на нижний.

Цитата(Домовик @ 29.04.14, 10:40) необходимо зарегистрироваться для просмотра ссылки
задача в принципе типичная. зачем тогда ДеревоЗначений в системе, если по нему нельзя ориентироваться.

значит, решение должно быть в восьмерке.

В этом я не сомневаюсь)

Процедура ОбойтиУровеньДерева(Строки)
  Для каждого Строка из Строки Цикл
     //что-то делаем со строкой, например:
     Сообщить(Строка.ИмяСуществующегоВСтрокеРеквизита);  
     ОбойтиУровеньДерева(Строка.Строки);
  КонецЦикла;
КонецПроцедуры

//Вызываем перебор так:
Дерево = Новый ДеревоЗначений;
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
  |Ном.Ссылка как ссылка
  |ИЗ
  | Справочник.Номенклатура КАК Ном
  |ИТОГИ ПО
  |Ном.Ссылка ТОЛЬКО ИЕРАРХИЯ";
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
// перебор дерева значений
ОбойтиУровеньДерева(Дерево.Строки);


Нашел нужный пример, спасибо все кто пытался помочь!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.