|
Програмно менять СКД при смене значения переключателя
| ☑ |
0
ac13
12.05.21
✎
10:02
|
На форме отчета есть переключатель ВариантОтчета = 1 и 2
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
АдресСхемы1 = ПоместитьВоВременноеХранилище(ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"), Новый УникальныйИдентификатор());
АдресСхемы2 = ПоместитьВоВременноеХранилище(ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1"), Новый УникальныйИдентификатор());
КонецПроцедуры
Процедура ВариантОтчетаПриИзмененииНаСервере()
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
Если ВариантОтчета = 1 Тогда
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы1));
ИначеЕсли ВариантОтчета = 2 Тогда
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКомпоновкиДанных;
КонецЕсли;
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Отчет.КомпоновщикНастроек.Восстановить();
КонецПроцедуры
не работает, мне нужно менять схему компоновки данных при изменении значения переключателя
|
|
1
ac13
12.05.21
✎
10:04
|
схема компоновки данных не устанавливается, ее можно установить только при компоновке результата?
дело в том, что мне сначала нужно выбрать вариант, настроить его, а потом сформировать отчет
|
|
2
Курцвейл
12.05.21
✎
10:06
|
Правильнее отдельный отчет делать. Либо писать схему, которая имеет необходимые данные для обеих вариантов.
|
|
3
Курцвейл
12.05.21
✎
10:09
|
Если все таки есть сильная необходимость, можно покопаться в БСП, универсальный отчет. Посмотреть как там настраивается макет СКД.
|
|
4
Pro-tone
12.05.21
✎
10:10
|
Если ВариантОтчета = 1 Тогда
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы1));
ИначеЕсли ВариантОтчета = 2 Тогда
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКомпоновкиДанных;
КонецЕсли;
строки 3 и 6 явно различаются...
|
|