Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Переопределить основную схему СКД

Переопределить основную схему СКД
Я
   Sam1C
 
08.02.20 - 19:21
Так не получается, пишет "Не установлена схема компоновки данных":

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОтчетОбъект  = РеквизитФормыВЗначение("Отчет");
    СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ГрафикВыставленияАктов");
    ОтчетОбъект.СхемаКомпоновкиДанных =  СхемаКомпоновкиДанных;
    
        СхемаКомпоновкиДанных.Параметры.ДокументСчет.Значение = Параметры.ДокументСчет;
    СхемаКомпоновкиДанных.Параметры.Услуга.Значение = Параметры.Услуга;
    СхемаКомпоновкиДанных.Параметры.ИдентификаторСтроки.Значение = Параметры.ИдентификаторСтроки;
    
        Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
    Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет");
    
КонецПроцедуры


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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОтчетОбъект  = РеквизитФормыВЗначение("Отчет");
    СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ГрафикВыставленияАктов");
    ОтчетОбъект.СхемаКомпоновкиДанных =  СхемаКомпоновкиДанных;
    ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет");    
КонецПроцедуры

выдает ошибку "Не установлена схема компоновки данных"

И это понятно, т. к. при следующем серверном вызове, ОтчетОбъект.СхемаКомпоновкиДанных = Неопределено. Как я понимаю переопределить основную схему компоновки, таким способом нельзя и делать все нужно в событии ПриКомпоновкеРезультата. Просто видел такие примеры на просторах интернета и не могу понять у кого таким способом работала такая схема
   Sam1C
 
7 - 09.02.20 - 19:26
(5) В УТ11 не нашел такого события ПередЗагрузкойВариантаОтчета
   toypaul
 
8 - 10.02.20 - 09:06
   Sam1C
 
9 - 10.02.20 - 15:28
(8) Спасибо, но тема не раскрыта с помощью события   ПриКомпоновкеРезультата, понятно как переопределять макеты. Вопрос, если нельзя переопределить в ПриСозданииНаСервере, то откуда эти примеры в интернете, если этот способ не рабочий, вот в чем вопрос.Хотелось бы узнать, возможно ли передать в параметрах, какую схему запустить при открытии отчета, а все остальное отрабатывало стандартно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.