| 
    
            
         
         | 
    
    
  | 
Уровни группировок в СКД | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        prilforreal    
     07.02.18 
            ✎
    10:46 
 | 
         
        Доброго всем! Часто пишу отчеты в СКД, появилась необходимость задать изанчальный уровень группировок, пишу в модуле отчета код:
 
        Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных; Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки); ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0); КонецПроцедуры Но все группировки остаются раскрытыми, помогите разобраться, в чем же дело.  | 
|||
| 
    1
    
        GGDots    
     07.02.18 
            ✎
    10:54 
 | 
||||
| 
    2
    
        prilforreal    
     07.02.18 
            ✎
    11:20 
 | 
         
        (1) Пробовал и так, все равно все группировки раскрыты     
         | 
|||
| 
    3
    
        evorle145    
     07.02.18 
            ✎
    11:25 
 | 
         
        (2) да, кажется была такая проблема.. выкручивался как то через форму документа... то есть  ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0) в форме документа вызывал при каком то событии.. Но могу дико ошибаться..     
         | 
|||
| 
    4
    
        Rokford    
     07.02.18 
            ✎
    11:35 
 | 
         
        у меня в ПриКомпоновкеРезультата работает
 
        //ДокументРезультат.ПоказатьУровеньГруппировокСтрок(2); //Уровень 3 //ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); //Уровень 2 ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0); //Уровень 1  | 
|||
| 
    5
    
        prilforreal    
     07.02.18 
            ✎
    11:39 
 | 
         
        (4) А вы где либо эту процедуру указываете?     
         | 
|||
| 
    6
    
        Rokford    
     07.02.18 
            ✎
    11:41 
 | 
         
        Где ж может быть ПриКомпоновкеРезультата? В модуле объекта, конечно.     
         | 
|||
| 
    7
    
        Rokford    
     07.02.18 
            ✎
    11:44 
 | 
         
        Код один в один как в (0). Только в разных отчетах параметр (уровень) разный. Всегда работало. (необходимость была только в БП 3.0 пока)     
         | 
|||
| 
    8
    
        Mankubus    
     07.02.18 
            ✎
    11:47 
 | 
         
        (0) а эта процедура выполняется вообще? Может вы забыли привязать её к событию?     
         | 
|||
| 
    9
    
        prilforreal    
     07.02.18 
            ✎
    11:47 
 | 
         
        (6) Вот же, а у меня процедура в модуле формы)     
         | 
|||
| 
    10
    
        prilforreal    
     07.02.18 
            ✎
    11:54 
 | 
         
        (7) Прописал процедуру в модуле объекта и все заработало, теперь другой вопрос, при раскрытии уровня вснутренние уровни оказываются раскрыты, как с этим бороться?     
         | 
|||
| 
    11
    
        Rokford    
     07.02.18 
            ✎
    11:55 
 | 
         
        (9) Бывает :)
 
        (10) Задай в параметре нужный уровень, до которого нужно раскрывать. У тебя сейчас 0 стоит, т.е. все раскрыто (по-моему)  | 
|||
| 
    12
    
        Rokford    
     07.02.18 
            ✎
    12:02 
 | 
         
        (9)Пользуйся кнопкой "Процедуры и функции". Не ошибешься где и что.
 
        https://hkar.ru/SQlg (10) синтакс-помощник рулит :)  | 
|||
| 
    13
    
        prilforreal    
     07.02.18 
            ✎
    12:17 
 | 
         
        (11) 0 как раз таки все закрыто, точнее закрыто до верхнего уровня, его раскрываю, и внутри все уровни открыты. 
 
        (12) Спасибо, реально полезная вещь!)  | 
|||
| 
    14
    
        Rokford    
     07.02.18 
            ✎
    12:49 
 | 
         
        (13) Тупой вариант
 
        ... ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0); Лучший вариант (еще раз намекаю на СП) У = ДокументРезультат.КоличествоУровнейГруппировокСтрок() - 1; Пока У <> 0 Цикл ДокументРезультат.ПоказатьУровеньГруппировокСтрок(У); У = У - 1; КонецЦикла; ДокументРезультат.ПоказатьУровеньГруппировокСтрок(У); Будут вложенные тоже свернуты.  | 
|||
| 
    15
    
        prilforreal    
     07.02.18 
            ✎
    14:51 
 | 
         
        (14) Идеально! Спасибо, Мастер!)     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |