Имя: Пароль:
1C
1С v8
Переопределить основную схему СКД
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) Спасибо, но тема не раскрыта с помощью события   ПриКомпоновкеРезультата, понятно как переопределять макеты. Вопрос, если нельзя переопределить в ПриСозданииНаСервере, то откуда эти примеры в интернете, если этот способ не рабочий, вот в чем вопрос.Хотелось бы узнать, возможно ли передать в параметрах, какую схему запустить при открытии отчета, а все остальное отрабатывало стандартно.