Вход | Регистрация
 

Как в УФ изменить СхемуКомпоновкиДанных в отчете

Как в УФ изменить СхемуКомпоновкиДанных в отчете
Я
   ИС-2
 
14.01.19 - 09:01
есть отчет в который можно выполнить любую СКД. В обычных формах все просто и работает.
В УФ не понимаю, почему не доступны настройки  компоновки данных и не видит подменную СКД

в событии приСозданииНаСервере есть код. Он нормально получает СКД из врем. хранилища, но как заменить макет по умолчанию.

Аналогичный код есть в Универсальном отчете, но не понимаю почему не работает

ОтчетОбъект = ДанныеФормыВЗначение(Отчет,Тип("ОтчетОбъект"));
ОтчетОбъект.СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(Параметры.АдресСхемы);
ЗначениеВДанныеФормы(ОтчетОбъект,Отчет);
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Параметры.АдресСхемы));
 
 
   ИС-2
 
1 - 14.01.19 - 16:40
ап
   aleks_default
 
2 - 14.01.19 - 16:43
было такое недавно, там косяк с помещением во вр. хранилище
   aleks_default
 
3 - 14.01.19 - 16:51
Вспомнил, косяк был с тем что в источник доступных настроек надо сувать не схему, полученую из хранилища, а имено url адрес хранилища где лежит схема. Иначе почему-то не работает.
   aleks_default
 
4 - 14.01.19 - 16:52
А про настройки, надо их дополнительно догрузить типа так
Объект.КомпоновщикНастроекОтчета.ЗагрузитьНастройки(СхемаОтчета.НастройкиПоУмолчанию);
    Объект.КомпоновщикНастроекОтчета.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
   Вафель
 
5 - 14.01.19 - 17:16
схему нельзя подменить, но можно переинициализировать компоновщик
   ИС-2
 
6 - 14.01.19 - 17:23
(4) да, передаю адрес. Попробую в модуле объекта переинициализировать, только как туда передать через Метод ОткрытьФорму URL адреса временного хранилища (вед дополнительных свойств нет)?
   ИС-2
 
7 - 14.01.19 - 17:40
фактически надо подобный код преврать в код для УФ
НоваяСКД = Отчеты.ABCАнализПокупателей.Создать().СхемаКомпоновкиДанных;

ОтчетРасшифровка = Отчеты.УниверсальныйОтчет.Создать();

// тут не понимаю как заполнить в отчетеобъекте СхемаКомпоновкиДанных 

 
ОтчетРасшифровка.СхемаКомпоновкиДанных = НоваяСКД;
ОтчетРасшифровка.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ОтчетРасшифровка.СхемаКомпоновкиДанных));
ОтчетРасшифровка.ПолучитьФорму().Открыть();
   aleks_default
 
8 - 14.01.19 - 17:51
По моему надо что-то типа такого
ФормаОтчета = ОтчетРасшифровка.ПолучитьФорму();
ФормаОтчета.Объект.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
ФормаОтчета.Объект.КомпоновщикНастроек.ЗагрузитьНастройки(настройки);
ФормаОтчета.Объект.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность);
ФормаОтчета.Открыть();
   Numerus Mikhail
 
9 - 14.01.19 - 17:53
СхемаВХ = ПоместитьВоВременноеХранилище(СхемаМакет, ГУИД_Формы);

КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаВХ));
ВариантСхемы = СхемаМакет.ВариантыНастроек[Число(Сред(ИмяКоманды,2,1))];//тут номер варианта вычисляется, он у меня зашит в названии команды

КомпоновщикНастроек.ЗагрузитьНастройки(ВариантСхемы.Настройки);//обрезаем второй символ, т.к. это и есть индекс настройки


вытащил из рабочего
   тарам пам пам
 
10 - 15.01.19 - 09:10
(0) Если компоновщик не видит схемы, значит данные по переданному адресу врем хранилища уже были удалены. Проверь, как ты помещаешь во врем. хранилище схему - нужно это хранилище привязать к открываемой форме.
Как костыль в лоб можно попробовать так:

ОтчетОбъект = ДанныеФормыВЗначение(Отчет,Тип("ОтчетОбъект"));
ОтчетОбъект.СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(Параметры.АдресСхемы);
ЗначениеВДанныеФормы(ОтчетОбъект,Отчет);

АдресСхемыНовый = ПоместитьВоВременноеХранилище(ОтчетОбъект.СхемаКомпоновкиДанных, УникальныйИдентификатор);

Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыНовый));

 
 Рекламное место пустует
   ИС-2
 
11 - 22.01.19 - 15:41
(10) но как теперь открыть общую форму отчета с  ОтчетОбъект ?

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