Имя: Пароль:
1C
 
вывод иерархического справочника в отчет
0 vip67
 
03.03.15
07:53
Всем привет! есть подозрение что вопрос очень древний, но к сожалению, сломал мозг и в инете ответа не нашел. Итак проблема:
есть иерархический справочник с произвольным уровнем иерархии для каждой группы. есть элементы - и не только на самом нижнем уровне групп.
как через запрос вывести этот справочник в иерархии с группами и элементами? использование ОбходРезультатаЗапроса.ПоГруппировкамСИерархией выводит только самый верхний уровень, даже если есть рекурсия
1 Wobland
 
03.03.15
07:55
2 vip67
 
03.03.15
07:56
(1) без СКД
3 Wobland
 
03.03.15
07:57
(2) а зачем?
4 vip67
 
03.03.15
07:58
надо
5 Wobland
 
03.03.15
07:59
6 чувак
 
03.03.15
08:11
незнаю поможет или нет, из книги Хрусталевой

http://s018.radikal.ru/i506/1503/cd/814e036fd8c8.png
7 rphosts
 
03.03.15
08:13
(0) что за наезды не запросы? Вы их просто не умеете выбирать!
http://infostart.ru/public/158617/ - пример №5
8 un4gtn
 
03.03.15
09:25
Запрос.Текст =
    "ВЫБРАТЬ
    |    Магазины.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Магазины КАК Магазины
    |ГДЕ
    |    Магазины.Владелец = &Владелец
    |    И НЕ Магазины.ПометкаУдаления  
    |ИТОГИ ПО
    |    Ссылка ТОЛЬКО ИЕРАРХИЯ";
    
    Запрос.УстановитьПараметр("Владелец", Организация);
    
    ВыборкаСсылка = Результат.Выбрать(ОбходРезультатаЗапроса.ПРЯМОЙ);
    Родитель = ДеревоМагазинов;
    ПредидущийУровень = "";
    НоваяСтрока = ДеревоМагазинов;
    Пока ВыборкаСсылка.Следующий() Цикл
        Если ВыборкаСсылка.Уровень() <> ПредидущийУровень Тогда
            Если ВыборкаСсылка.Уровень() = 0 Тогда
                Родитель =  ДеревоМагазинов;
            Иначе
                Родитель = НоваяСтрока;
            КонецЕсли;
        КонецЕсли;
            
        Если Родитель <> ДеревоМагазинов И ВыборкаСсылка.Ссылка = Родитель.Магазин Тогда //В группе есть ссылка на саму группу
               Продолжить;
        КонецЕсли;
        
        
        НоваяСтрока = Родитель.Строки.Добавить();
        НоваяСтрока.Магазин = ВыборкаСсылка.Ссылка;
        Если НачальныеМагазины.НайтиПоЗначению(НоваяСтрока.Магазин) <> Неопределено Тогда
            НоваяСтрока.Использование = Истина;
        КонецЕсли;
        
        ПредидущийУровень = ВыборкаСсылка.Уровень();
    КонецЦикла;
9 un4gtn
 
03.03.15
09:27
Надеюсь поможет. Тоесть, делаете запрос с итогами "Только иерхия" и в прямом обходе, выводе данные в Дерево Значений.
10 un4gtn
 
03.03.15
09:28
Йа русскый школь хадыл, извиняюсь за ошибки. пишу в торопях.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн