|
СКД Группировки кодом | ☑ | ||
---|---|---|---|---|
0
Sj
19.12.12
✎
11:29
|
Есть рабочий код, который делает группировку внутри группировки, а как сделать, чтобы следующая группировка была на том же уровне, что и предыдущая?
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Настройки = КомпоновщикНастроек.Настройки; Настройки.Структура.Очистить(); ОтчетГруппировка = ""; Настройки.Структура.Очистить(); Для каждого Стр Из ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеПоляГруппировок.Элементы Цикл Если Стр.Ресурс Тогда Продолжить; КонецЕсли; Если ОтчетГруппировка = "" Тогда ОтчетГруппировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); Иначе ОтчетГруппировка = ОтчетГруппировка.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); КонецЕсли; ОтчетГруппировка.Имя = Строка(Стр.Поле); ОтчетГруппировка.Использование = Истина; ПолеГруппировки = ОтчетГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Использование = Истина; ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(Строка(Стр.Поле)); ПолеГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы; ПолеГруппировки.ТипДополнения = ТипДополненияПериодаКомпоновкиДанных.БезДополнения; ВыбранноеПоле = ОтчетГруппировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(Строка(Стр.Поле)); Для каждого Стр2 Из ЭтотОбъект.КомпоновщикНастроек.Настройки.ДоступныеПоляГруппировок.Элементы Цикл Если НЕ Стр2.Ресурс Тогда Продолжить; КонецЕсли; ВыбранноеПоле = ОтчетГруппировка.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(Строка(Стр2.Поле)); КонецЦикла; КонецЦикла; НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры |
|||
1
чувак
19.12.12
✎
11:32
|
Это надо сделать в структуре настройки
|
|||
2
Sj
19.12.12
✎
11:33
|
нее... надо кодом.
|
|||
3
чувак
19.12.12
✎
11:35
|
(2) Можно кодом
|
|||
4
Sj
19.12.12
✎
11:40
|
Вот я и спрашиваю: как?
|
|||
5
чувак
19.12.12
✎
11:40
|
||||
6
Sj
19.12.12
✎
12:39
|
короче, надо вот так
Если ОтчетГруппировка = "" Тогда ОтчетГруппировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); ОтчетГруппировка.Имя = Строка(Стр.Поле); ОтчетГруппировка.Использование = Истина; //Иначе // ОтчетГруппировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |