Имя: Пароль:
1C
 
Скд, сворачивание группировок
,
0 grigo
 
21.02.18
15:08
Управляемые формы, СКД. 8.3.10.

Есть задача - написать много отчетов. Одно из требований - все отчеты должны формироваться со свернутыми группировками. Можно ли такое сделать без создания формы отчета? Отчеты строятся на СКД.
1 Fragster
 
гуру
21.02.18
15:09
да
2 grigo
 
21.02.18
15:11
(1) Как?
3 Fragster
 
гуру
21.02.18
15:11
программно сформировать в ПриКомпоновкеРезультата и свернуть
4 grigo
 
21.02.18
15:17
Я бы с вами в разведку пошел)). А как свернуть?
5 Fragster
 
гуру
21.02.18
16:01
примерно так:         ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
6 grigo
 
26.02.18
10:51
К сожалению, в процедуре ПриКомпоновкеРезультата модуля отчета это не работает. По крайней мере на моей платформе с моими настройками совместимости. Придется, видимо, все-таки формы рисовать.
7 DrShad
 
26.02.18
11:03
(6) ну и что ты в форме нарисуешь?
8 Fragster
 
гуру
26.02.18
11:08
(6) работает
9 drcrasher
 
26.02.18
11:09
(0) своя форма, свои кнопки и обработчик ожидания.
вот для примера https://yadi.sk/d/veFjV3Mz3SmkbK
10 Fragster
 
гуру
26.02.18
11:10
(9) фу так делать
11 drcrasher
 
26.02.18
11:14
(10) как?
12 Fragster
 
гуру
26.02.18
11:32
(11) ради этой задачи лепить свою форму, да еще и сворачивать через обработчик ожидания.
13 Fragster
 
гуру
26.02.18
11:32
я подозреваю, что кто-то в (6) забыл указать "стандартная обработка = ложь"
14 drcrasher
 
26.02.18
11:34
(12) ну там не только "сворачивать через обработчик ожидания". там несколько иное через обработчик
15 grigo
 
26.02.18
12:42
(13) Не "забыл", а "не знал". Сейчас я написал следующее:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
    
КонецПроцедуры

Теперь отчет совершенно пустой. Чистый табличный документ.
16 grigo
 
26.02.18
12:58
(15, 13, 3) Понял, надо полностью писать простыню кода по компоновке результата. Правильно?
17 тарам пам пам
 
26.02.18
13:32
(16) можно простыню; можно попробовать вызвать сначала стандартный обработчик каким-то таким образом:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    Если ДополнительныеСвойства.Свойство("ВложенныйВызов") Тогда
        Возврат;
    КонецЕсли;

    СтандартнаяОбработка = Ложь;

    ДополнительныеСвойства.Свойство("ВложенныйВызов");
    СкомпоноватьРезультат(ДокументРезультат, ДанныеРасшифровки);
    ДополнительныеСвойства.Удалить("ВложенныйВызов");

    ДокументРезультат.ПоказатьУровеньГруппировокСтрок(0);
    
КонецПроцедуры
18 Fragster
 
гуру
26.02.18
13:33
(16) ну как простыню... у меня в 10 строк получилось. и в 13, если сворачивать уровни в цикле, начиная с последнего (чтобы раскрывались по одному).
19 Fragster
 
гуру
26.02.18
13:34
(17) классный лайвхак
20 Fragster
 
гуру
26.02.18
13:35
аж три строки экономится. но не надо запоминать, как эта долбаная СКД формируется.
AdBlock убивает бесплатный контент. 1Сергей