Имя: Пароль:
1C
1С v8
Подскажите по группировке строк.
0 Паланик
 
04.03.12
18:48
Выводил группировки справочника с иерархией, используя Таб.НачатьАвтоГруппировкуСтрок() и  Таб.ЗакончитьАвтоГруппировкуСтрок() через рекурсию, всё работало отлично. Но теперь нужно выводить характеристики номенклатуры группируя их. Делаю по тому же принципу что и с группами и элементами, но ничего не получается.

...
Таб.НачатьАвтоГруппировкуСтрок();
            ВложПокупатели(РезультатЗапроса, 0);    
            Таб.ЗакончитьАвтоГруппировкуСтрок();    
...

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

            КонецЕсли;            
        Иначе
            Группа.Параметры.Наименование = Прав(Выборка.Наименование, СтрДлина(Выборка.Наименование) - (Найти(Выборка.Наименование, ".") + 1));
            Таб.Вывести(Группа, Прист + 1, , РазворачиватьГруппировки);
        КонецЕсли;
       
        Состояние(Выборка.Наименование);
        ВложПокупатели(Выборка, Прист  + 1);        
       
    КонецЦикла;
   
КонецПроцедуры
1 Паланик
 
04.03.12
18:51
Характеристики добавил в запрос левым соединением, чтобы было понятно условие в середине цикла.
2 Ork
 
04.03.12
18:53
(0) А указывать номер группировки - дядюшку Пушкина будем приглашать?
3 Ork
 
04.03.12
18:54
+(2) Вот здесь : Таб.Вывести(Хар)
4 Паланик
 
04.03.12
19:11
Да
Таб.Вывести(Хар, Прист +2);

Я и не стал делать, думая, что раз в старом алгоритме группировалось по номенклатуре, но в её выводе не указывал уровень группировки, то и тут не надо.
5 Паланик
 
04.03.12
19:15
(3) Можешь пояснить, почему так? Когда вывожу номенклатуру сгруппированную в группе - в её выводе уровень не указывал, но группировка делалась?
6 a_alenkin
 
04.03.12
19:22
А разве СКД этого не делает?
7 Паланик
 
04.03.12
19:26
(6) Да уже какой раз зарекаюсь начать на реальном примере изучить, но всё срочное попадается.