Имя: Пароль:
1C
1С v8
СКД - странность с ПоказатьУровеньГруппировокСтрок(<Уровень>)
0 jq
 
11.11.19
12:45
Добрый день, ситуация вроде примитивная, но никак не увижу, где подвох...

Отчет сделан полностью на СКД, для того, чтобы автоматически сворачивались группировки на верхнем уровене добавил в общий модуль процедуру ПриКомпоновкеРезультата, форму отчета свою не добавлял, используется форма СКД, генерируемая автоматически.


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

В результате работы отчета наблюдается странная ситуация, при работе указанной процедуры отчет выводится пустой, т.е. только шапка отчета, данных не видно, хотя при этом группировка в которой выводится отбор и параметры, над шапкой отчета, выводится свернутой... Если зайти в Настройки - Расширенные настройки и ничего не изменяя, а выйти просто по кнопке Закрыть и сформировать, то отчет выведется со свернутой группировкой, все как надо. Но если поменять, например, период, то отчет не обновится, пока не зайти и не выйти снова из настроек... В чем может быть подвох?
1 jq
 
11.11.19
14:10
Ну никак не победить...
2 Жан Пердежон
 
11.11.19
14:44
сдавайся
3 jq
 
11.11.19
15:00
Серьезно, не пойму в чем затычка...
4 toypaul
 
гуру
11.11.19
15:16
"В чем может быть подвох?" в том что ТД формируемый на сервере визуально "слабо" связан с тем ТД, который на клиенте
5 jq
 
11.11.19
17:15
(4) Не совсем понятно. Я использую типовую процедуру отчета на СКД, в кот. есть переменная табличный документ - ДокументРезультат.
И, кстати, такой варианта на всех форумах описывается, никто не жалуется...
6 pechkin
 
11.11.19
18:14
(4) как это не связан - это же тот самый таб док на форме
7 jq
 
12.11.19
10:02
Я вообще форму не использую, она формируется программно СКД
8 jq
 
14.11.19
11:46
up
9 Vinianel
 
14.11.19
11:55
(8) Попробуй переинициализировать настройки. Что-то вроде:

ИмяВариантаНастроек = "Основной";
Настройки = СхемаКомпоновкиДанных.ВариантыНастроек[ИмяВариантаНастроек].Настройки;
    
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Настройки = КомпоновщикНастроек.ПолучитьНастройки();

Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
10 Uzyf
 
14.11.19
11:57
(9) я обычно так пишу

НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета, ДанныеРасшифровки);
11 Uzyf
 
14.11.19
11:59
можно просто
Макет = КомпоновщикМакет.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший