![]() |
![]() |
![]() |
|
Иерархическая группировка в табличном документе. | ☑ | ||
---|---|---|---|---|
0
Reflection1
08.08.25
✎
11:39
|
Всем привет, как уже понятно из темы мне нужно сделать группировку в табличном документе. Группировка должна быть по Контрагенту, сделкам и реализациям. Проблема в том, что сейчас строка только закрывается и открывается. То есть внутри строки нет еще 2 уровней по сделке и реализациям. Буду благодарен за подсказку.
Код: Для Каждого СтрГруппировка Из ТЗГруппировка Цикл ТабличныйДокумент.НачатьГруппуСтрок(,Истина); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|НомерПП"); ОбластьМакета.Параметры.НомерПП = НомерПП; ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|Контрагент"); ОбластьМакета.Параметры.Контрагент = СтрГруппировка.Контрагент; ТабличныйДокумент.Присоединить(ОбластьМакета); //Здесь должен быть 2 уровень ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|ПерваяСделка"); ОбластьМакета.Параметры.ПерваяСделка = СтрГруппировка.ПерваяСделка; ТабличныйДокумент.Присоединить(ОбластьМакета,2,,Истина); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|ПовторнаяСделка"); ОбластьМакета.Параметры.ПовторнаяСделка = СтрГруппировка.ПовторнаяСделка; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|БезПовторныхСделок90Дней"); ОбластьМакета.Параметры.БезПовторныхСделок90Дней = СтрГруппировка.БезПовторныхСделок90Дней; ТабличныйДокумент.Присоединить(ОбластьМакета); //Здесь должен быть 3 уровень ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|ВыручкаГод"); ОбластьМакета.Параметры.ВыручкаГод=СтрГруппировка.ВыручкаГод; ТабличныйДокумент.Присоединить(ОбластьМакета,3); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|ОбщаяВыручка"); ОбластьМакета.Параметры.ОбщаяВыручка = СтрГруппировка.ОбщаяВыручка; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|ПрофитГод"); ОбластьМакета.Параметры.ПрофитГод = СтрГруппировка.ПрофитГод; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета=Макет.ПолучитьОбласть("СтрТЧ|ОбщийПрофит"); ОбластьМакета.Параметры.ОбщийПрофит = СтрГруппировка.ОбщийПрофит; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета=Макет.ПолучитьОбласть("СтрТЧ|ДоляВыручкиГод"); ОбластьМакета.Параметры.ДоляВыручкиГод=СтрГруппировка.ДоляВыручкиГод; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета=Макет.ПолучитьОбласть("СтрТЧ|ОбщаяДоляВыручки"); ОбластьМакета.Параметры.ДоляВыручкиОбщая = СтрГруппировка.ОбщаяВыручка / СтрГруппировка.ВыручкаОбщаяЗаВесьПериод * 100; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета=Макет.ПолучитьОбласть("СтрТЧ|ДоляПрофитаГод"); ОбластьМакета.Параметры.ДоляПрофитаГод=СтрГруппировка.ДоляПрофитаГод; ТабличныйДокумент.Присоединить(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("СтрТЧ|ОбщаяДоляПрофита"); ОбластьМакета.Параметры.ДоляПрофитаОбщая=СтрГруппировка.ОбщийПрофит / СтрГруппировка.ПрофитОбщийЗаВесьПериод * 100; ТабличныйДокумент.Присоединить(ОбластьМакета); ТабличныйДокумент.ЗакончитьГруппуСтрок(); НомерПП = НомерПП + 1; КонецЦикла; ТабличныйДокумент.ФиксацияСверху = 1; Возврат ТабличныйДокумент; |
|||
1
maxab72
08.08.25
✎
11:47
|
Нарисуйте примерно, что вы хотите получить?
Вы все присоединяете к одной строке. Какая группировка вам нужна, по строкам или по колонкам? |
|||
2
Fish
гуру
08.08.25
✎
11:47
|
(0) Переделай на СКД
|
|||
3
Reflection1
08.08.25
✎
11:50
|
(1) Смотрите, в табличном документе есть строки с данными. После открытия строки появляется Контрагент, потом должен быть еще один "плюс"(на этой же строке), который уже откроет сделки, а после сделок еще один плюс, который откроет остальные данные.
|
|||
4
maxab72
08.08.25
✎
11:53
|
(3) если вы хотите много строк, то почему используете "Присоединить" а не "Вывести"? И где НачатьАвтогруппировкуСтрок?
|
|||
5
Reflection1
08.08.25
✎
12:03
|
(4) Насчёт "Присоединить" и "Вывести" понял, исправлю. Не понимаю только с "НачатьАвтогруппировкуСтрок", вы рекомендуете заменить "НачатьГруппуСтрок" на "НачатьАвтогруппировкуСтрок"?
|
|||
6
maxab72
08.08.25
✎
12:19
|
НачатьАвтогруппировкуСтрок - не требует прописывать группы внутри, они автоматически определяются по уровню. Обычно ее хватает. НачатьГруппуСтрок - это если хочется ручных извращений с группировками (то строки сгруппированы, то нет, и т.п.)
|
|||
7
lucky_
08.08.25
✎
13:01
|
(0) если уж пользуешься всякой дрянью, дак хоть СП открывай.
там в примере всё за тебя написали. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |