|
Переопределить основную схему СКД | ☑ | ||
---|---|---|---|---|
0
Sam1C
08.02.20
✎
19:21
|
Так не получается, пишет "Не установлена схема компоновки данных":
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ГрафикВыставленияАктов"); ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКомпоновкиДанных; СхемаКомпоновкиДанных.Параметры.ДокументСчет.Значение = Параметры.ДокументСчет; СхемаКомпоновкиДанных.Параметры.Услуга.Значение = Параметры.Услуга; СхемаКомпоновкиДанных.Параметры.ИдентификаторСтроки.Значение = Параметры.ИдентификаторСтроки; Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет"); КонецПроцедуры Или только в событии ПриКомпоновкеРезультата можно переопределять? |
|||
1
palsergeich
08.02.20
✎
22:06
|
(0) Сделай все тоже самое только без ОтчетОбъект
|
|||
2
palsergeich
08.02.20
✎
22:10
|
А все понял.
Тебе надо настройки подменить. Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); Вот эту строку делай через Временное Хранилище, ибо в такой записи она не работает на УФ. |
|||
3
palsergeich
08.02.20
✎
22:11
|
(2) Точнее работает только в рамках одного серверного вызова
|
|||
4
palsergeich
08.02.20
✎
22:15
|
Как мне видится эта задача решается в 2 захода.
1ый это подмена схемы компановки ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ГрафикВыставленияАктов"); ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКомпоновкиДанных; ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет"); Вторая это подмена настроек причем эта строка Источник настроек инициализировать через ВХ и будет счастье. |
|||
5
runoff_runoff
09.02.20
✎
00:12
|
если конфа на БСП, нужно использовать событие ПередЗагрузкойВариантаОтчета (ctrl+shift+F по всей конфе) для подмены СКД, как это сделано в типовых решениях
|
|||
6
Sam1C
09.02.20
✎
19:19
|
(4) с ВХ тоже пробовал, не взлетало. Но даже если остановится просто на подмене основной схемы (без настроек), в отчете в конфигураторе не установлена основная схема, но код:
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ГрафикВыставленияАктов"); ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКомпоновкиДанных; ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет"); КонецПроцедуры выдает ошибку "Не установлена схема компоновки данных" И это понятно, т. к. при следующем серверном вызове, ОтчетОбъект.СхемаКомпоновкиДанных = Неопределено. Как я понимаю переопределить основную схему компоновки, таким способом нельзя и делать все нужно в событии ПриКомпоновкеРезультата. Просто видел такие примеры на просторах интернета и не могу понять у кого таким способом работала такая схема |
|||
7
Sam1C
09.02.20
✎
19:26
|
(5) В УТ11 не нашел такого события ПередЗагрузкойВариантаОтчета
|
|||
8
toypaul
гуру
10.02.20
✎
09:06
|
||||
9
Sam1C
10.02.20
✎
15:28
|
(8) Спасибо, но тема не раскрыта с помощью события ПриКомпоновкеРезультата, понятно как переопределять макеты. Вопрос, если нельзя переопределить в ПриСозданииНаСервере, то откуда эти примеры в интернете, если этот способ не рабочий, вот в чем вопрос.Хотелось бы узнать, возможно ли передать в параметрах, какую схему запустить при открытии отчета, а все остальное отрабатывало стандартно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |