|   |   | 
| 
 | Иерархическая группировка в табличном документе. | ☑ | ||
|---|---|---|---|---|
| 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) если уж пользуешься всякой дрянью, дак хоть СП открывай.
 там в примере всё за тебя написали. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |