Имя: Пароль:
1C
1С v8
Уровень группировки и СКД
0 ДайтеДайте Сказать
 
08.11.12
14:23
Можно ли сделать в СКД так, чтобы отчет выводился со свернутым уровнем группировки (т.е. чтобы на 3-м уровне группировка была свернута, а пользователь при желании мог развернуть)?
1 teapot123
 
08.11.12
14:37
можно при программном формировании отчета
2 ДайтеДайте Сказать
 
08.11.12
15:03
Здесь можно?

ДокументРезультат.ФиксацияСверху = 0;    
   //Основной цикл вывода отчета
   Пока Истина Цикл
       //Получим следующий элемент результата компоновки
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();

       Если ЭлементРезультата = Неопределено Тогда
           //Следующий элемент не получен - заканчиваем цикл вывода
           Прервать;
       Иначе
           // Зафиксируем шапку
           Если  Не ТаблицаЗафиксирована
                 И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
                 И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда

               ТаблицаЗафиксирована = Истина;
               ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;

           КонецЕсли;
           //Элемент получен - выведем его при помощи процессора вывода
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
       КонецЕсли;
   КонецЦикла;

   ПроцессорВывода.ЗакончитьВывод();
3 teapot123
 
08.11.12
15:15
ниже допиши
Результат.ПоказатьУровеньГруппировокСтрок(0);
Результат.Показать();
4 teapot123
 
08.11.12
15:15
Результат -> ДокументРезультат
5 ДайтеДайте Сказать
 
08.11.12
15:17
(3) это в модуле объекта в Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

там нет Результат
6 ДайтеДайте Сказать
 
08.11.12
15:18
Меня удивляет, почему работает
ДокументРезультат.ФиксацияСверху = 0;

и не работает
ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
7 ДайтеДайте Сказать
 
08.11.12
15:20
Ура, заработало!!!

В конце вставил ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);

Спасибо (4)
8 Irek-kazan
 
08.11.12
15:21
можно вообще такая тема неоднократно поднималась вроде
Процедура ДействияФормыСформироваит(Кнопка)
   ЭлементыФормы.Результат.Очистить();
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
   ПроцессорВывода.НачатьВывод();
   Пока Истина Цикл
       ЭлементРезультата = ПроцессорКомпоновки.Следующий();
       Если ЭлементРезультата = Неопределено Тогда
           Прервать;
       Иначе
           ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
       КонецЕсли;
   КонецЦикла;
   ПроцессорВывода.ЗакончитьВывод();
   
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(8);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(7);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(6);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(5);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(4);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(3);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(2);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(1);
   ЭлементыФормы.Результат.ПоказатьУровеньГруппировокКолонок(0);

КонецПроцедуры