Имя: Пароль:
1C
1С v8
Иерархия справочника не по родителю
0 SashaNox
 
02.10.12
15:19
Добрый день! Подскажите как реализовать:
Справочник "Номенклатура" имеет реквизит "Родитель2" ссылка на иерархический справочник "Родители", как на форме обработки построить дерево Номенклатуры с иерархией заданной в справочнике "Родители"?
1 mikecool
 
02.10.12
15:20
запилить свой список с блекджеком
2 SashaNox
 
02.10.12
15:21
это как?
3 GANR
 
02.10.12
15:25
(2)Дерево значений на форму вывести. В первый уровень запихать всё, что НЕ имеет родителя, в качестве строк элементов дерева - их "дети" и т. д. Ещё в СКД можно сделать нестандартную иерархию (см. Хрусталева "Разработка сложных отчетов в 1С:Предприятии 8" стр 323).
4 SashaNox
 
02.10.12
15:28
А если строить иерархию только по тем элементам которые имеются в номенклатуре, т.е. если элемент иерархию нулевого уровня не имеет номенклатуры подчиненной ему, то и выводится он не должен
5 Classic
 
02.10.12
15:28
В чем сложность?
6 SashaNox
 
02.10.12
15:37
Не могу никак сообразить алгоритм.
Справочник "родители" имеет реквизит "не использовать", если он установлен, то для формирования дерева должен браться первый вышестоящий со значением "Использовать".
Вот к примеру выбираем группу номенклатуры и пытаюсь ее перестроить:

для начала, что нужно написать в запросе чтобы построить дерево со всей иерархией, итоги по родителю ничего не дают(
Если одним запросом не обойтись, то какой оптимальный алгоритм?
7 DrShad
 
02.10.12
15:48
ВЫБРАТЬ
   Номенклатура.Родитель2
ИЗ
   Справочник.Номенклатура КАК Номенклатура
ИТОГИ ПО
   Номенклатура.Родитель2 ТОЛЬКО ИЕРАРХИЯ
8 GANR
 
02.10.12
16:00
(6) Да можно обойтись одним запросом. Получить выборку вида (Ссылка, ТвойРодитель), а уж потом посредством рекурсии или стека преобразовать это безобразие в дерево значений.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.