Имя: Пароль:
1C
1С v8
Опять выборка из запроса с иерархией
0 1dvd
 
19.11.13
07:55
Помогите разобраться с выводом в дерево значений результата запроса по средствам выборки с иерархией


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

Процедура ДобавитьПользователя(Дерево, Выборка)
    
    Пока Выборка.Следующий() Цикл
        НовыйПользователь = Дерево.Строки.Добавить();
        НовыйПользователь.Пользователь = Выборка.Пользователь;
        
        Если НовыйПользователь.Пользователь.ЭтоГруппа Тогда
            НоваяВыборка = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, Выборка.Группировка());
            ДобавитьПользователя(НовыйПользователь, НоваяВыборка);
        Иначе
            ВыборкаНастроек = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            Пока ВыборкаНастроек.Следующий() Цикл
                ИмяНастройки = ПланыВидовХарактеристик.НастройкиПользователей.ПолучитьИмяПредопределенного(ВыборкаНастроек.Настройка);
                НовыйПользователь[ИмяНастройки] = ВыборкаНастроек.Значение;
            КонецЦикла;
        КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры


Всё замечательно, но выходит только первый уровень справочника. Что делаю не так?
1 1dvd
 
19.11.13
08:00
млять. прошу прощения

//НоваяВыборка = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, Выборка.Группировка());
НоваяВыборка = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией, Выборка.Группировка());
2 Wobland
 
19.11.13
08:02
второй параметр нужен?
3 1dvd
 
19.11.13
08:11
(2) моя ошибка была в "ПоГруппировкам[СИерархией]".
А вот без второго параметра не взлетело :(