Имя: Пароль:
1C
 
Автогруппировка строк в макете
0 Mikhail2014
 
25.04.16
19:49
Всем привет!

Делаю запрос:

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

Потом в цикле обхожу результат:

результат.НачатьАвтогруппировкуСтрок();
    пока позиция.Следующий() цикл
...

конеццикла;
    
    результат.ЗакончитьАвтогруппировкуСтрок();

В табличный документ выводит только сами строки, без сворачиваемых  группировок. Что делаю не так?
1 Лефмихалыч
 
25.04.16
21:15
Ты забыл установить Уровень или наименование группы - третий и четвертый параметр у Вывести().
2 Mikhail2014
 
26.04.16
10:32
(1) Вывожу область вот так:

результат.Вывести(областьмакета, позиция.Уровень(), строка(позиция.Уровень()));

Тоже самое - только строчки, без группировок. В запросе "Группа" - это группа номенклатуре, подгрупп в ней нет, только сами товары.
3 Mikhail2014
 
26.04.16
10:36
У меня в макете каждая колонка выделена в отдельную область. То есть строку я вывожу вот так:

результат.Вывести(областьмакета, позиция.Уровень(), строка(позиция.Уровень())); - 1-я колонка строки.

потом:

результат.Присоединить(Область1);
результат.Присоединить(Область2);
результат.Присоединить(Область3);
4 Лефмихалыч
 
26.04.16
10:39
может быть дело в кэше? с уровнем должно работать. У меня работает.
5 Mikhail2014
 
26.04.16
10:40
Сделал вот так:

Результат.Вывести(областьмакета, позиция.Уровень(), строка(позиция.Уровень()));
результат.Присоединить(Область1, позиция.Уровень(), строка(позиция.Уровень()));
результат.Присоединить(Область2, позиция.Уровень(), строка(позиция.Уровень()));
результат.Присоединить(Область3, позиция.Уровень(), строка(позиция.Уровень()));

Тоже самое.
6 Лефмихалыч
 
26.04.16
10:43
в присоединить оно и не имеет смысла - ты ж строки группируешь, а не колонки.
Может Позиция.Уровень() всегда возвращает 1?..
7 Mikhail2014
 
26.04.16
10:57
(6) Да, позиция всегда возвращает 0. А почему так? В чем ошибка?
8 Mikhail2014
 
26.04.16
10:59
(7) Позиция.Уровень() возвращает 0
9 Лефмихалыч
 
26.04.16
11:00
(7) ошибка в том, что ты думаешь, что должно быть по-другому :)
кроме тебя ни кто не знает, какой уровень тебе нужен при каждом вызове Вывести(). И платформа - в первых рядах из тех, кто не знает
10 Mikhail2014
 
26.04.16
15:50
(9) Не дадите пример, как с этим работать? Мне нужно получиь в запросе номенклатуру из группы (с подгруппами, если есть) и вывести ее в макет в виде дерева с группировками. Как мне это сделать?