Имя: Пароль:
1C
 
Поиск в дереве значений
0 Карамелька
 
12.05.06
18:10
Мне нужно сформировать дерево значений. Есть одна колонка "Идентификатор". Как найти узлы в ДЗ у кот. значение=0 (или какому то другому значению)?
1 Карамелька
 
12.05.06
18:12
это мне по всем уровням бегать нужно что ли?
2 Волшебник
 
модератор
12.05.06
18:13
НайтиСтроки
3 Карамелька
 
12.05.06
18:13
так МассД=Дерево.Строки.НайтиСтроки(Новый Структура("Идентификатор",Идентификатор2)); ?
4 Карамелька
 
12.05.06
18:14
таким образом он ищет только в верхнем уровне. А если такое значение находится где-нибудь в глубине, то он его не находит:(
5 Карамелька
 
12.05.06
18:29
help!!
6 Волшебник
 
модератор
12.05.06
18:32
А может преобразовать дерево в ТЗ и там уже искать?
7 Карамелька
 
12.05.06
18:42
:-О не думаю что это хорошая идея
8 Волшебник
 
модератор
12.05.06
18:43
(7) Тогда используй рекурсию. Но все-таки ТЗ лучше
9 Карамелька
 
12.05.06
18:43
я как раз и обратилась к Дереву значений, потому что мне нужно было создать такой объект, кот. в ТЗ не укладывался. Искать значения нужно постоянно, т.е. чтобы добавить элемент в ДЗ, нужно сначала найти родителя или родителей.
10 Карамелька
 
12.05.06
18:44
вообще то мне изначально нужен отчет по спецификациям. А там сложная вложенность получается и через ТЗ я ее реализовать не могу
11 Волшебник
 
модератор
12.05.06
18:45
(10) Заведи там поле "Родитель" и пусть там хранится СтрокаТабличнойЧасти. Та же вложенность.
12 Карамелька
 
12.05.06
18:48
:( мне идея с ДЗ понравилась, потому что у меня на ТЗ уже мозги не работают по крайней мере в плане этого отчета
13 Оптимизатор
 
12.05.06
18:51
Да там нах не надо ТЗ. Дерево значений хоть и медленно работает, но вещь хорошая. А Волшебник сразу видно этим объектом пользоваться неумеет.
А в Хелп заглянуть вп@длу что-ли?

Тут же есть включать подчиненные!

Синтаксис:
НайтиСтроки(<Параметры отбора>, <Включать подчиненные>)
Параметры:
<Параметры отбора> (обязательный)
Тип: Структура. Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.
<Включать подчиненные> (необязательный)
Тип: Булево. Определяет, будут ли производиться поиск также в подчиненных коллекциях (если таковые имеются). Истина - поиск будет произведен.
Значение по умолчанию: Ложь
Возвращаемое значение:
Тип: Массив. Массив из строк дерева значений, соответствующих заданному условию поиска.
Замечание! Массив хранит ссылки на строки дерева значений, то есть при изменении строки в дереве, значение в массиве тоже будет изменено.
Описание:
Осуществляет поиск строк из коллекции строк дерева значений, соответствующих заданному условию поиска.
Примечание:
Метод эффективно использовать для выборки неуникальных значений.
Пример:
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Затрата", ТекЗатрата);
НайденныеСтроки = СтрокиСостава.НайтиСтроки(ПараметрыОтбора);
14 Волшебник
 
модератор
12.05.06
18:52
(13) Значит я в (2) оказался прав, а в (4) меня Карамелька обманула.
15 Оптимизатор
 
12.05.06
18:53
Значит Карамелька этим объектом пользоваться неумеет:)
16 Карамелька
 
15.05.06
06:33
(15) Да. Не умею. Ну и что из этого. Мы все когда то чему то учимся. А перед этим естественно этого делать не умеем. А сегодня утром я и сама до <Включать подчиненные> дошла.
(14) Ну как я могла тебя обмануть? мне это и в голову не приходило. Просто если не устанавливать второй параметр, то он действительно ищет в одном уровне:)