По умолчанию отчеты на СКД выводятся с уже развернутыми группировками. Чтобы при выводе отчета группировки были свернуты нужно добавить следующий код в модуль отчета:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
//ДокументРезультат.ПоказатьУровеньГруппировокСтрок(2); //Уровень 3
//ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); //Уровень 2
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0); //Уровень 1
КонецПроцедуры
СтандартнаяОбработка = Ложь;
КомпоновщикМакет = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет, , ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
//ДокументРезультат.ПоказатьУровеньГруппировокСтрок(2); //Уровень 3
//ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1); //Уровень 2
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0); //Уровень 1
КонецПроцедуры
Чтобы и вложенные уровни были свернуты нужно пробежаться по ним в цикле
ОтветитьУдалитьКонечныйУровеньГруппировки = 0;
ТекущийУровень = ДокументРезультат.КоличествоУровнейГруппировокСтрок() - 1;
Пока ТекущийУровень > КонечныйУровеньГруппировки Цикл
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(ТекущийУровень);
ТекущийУровень = ТекущийУровень - 1;
КонецЦикла;
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(КонечныйУровеньГруппировки);
Спасибо!
ОтветитьУдалить