|
Как в УФ изменить СхемуКомпоновкиДанных в отчете | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
14.01.19
✎
09:01
|
есть отчет в который можно выполнить любую СКД. В обычных формах все просто и работает.
В УФ не понимаю, почему не доступны настройки компоновки данных и не видит подменную СКД в событии приСозданииНаСервере есть код. Он нормально получает СКД из врем. хранилища, но как заменить макет по умолчанию. Аналогичный код есть в Универсальном отчете, но не понимаю почему не работает ОтчетОбъект = ДанныеФормыВЗначение(Отчет,Тип("ОтчетОбъект")); ОтчетОбъект.СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(Параметры.АдресСхемы); ЗначениеВДанныеФормы(ОтчетОбъект,Отчет); Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Параметры.АдресСхемы)); |
|||
1
ИС-2
naïve
14.01.19
✎
16:40
|
ап
|
|||
2
aleks_default
14.01.19
✎
16:43
|
было такое недавно, там косяк с помещением во вр. хранилище
|
|||
3
aleks_default
14.01.19
✎
16:51
|
Вспомнил, косяк был с тем что в источник доступных настроек надо сувать не схему, полученую из хранилища, а имено url адрес хранилища где лежит схема. Иначе почему-то не работает.
|
|||
4
aleks_default
14.01.19
✎
16:52
|
А про настройки, надо их дополнительно догрузить типа так
Объект.КомпоновщикНастроекОтчета.ЗагрузитьНастройки(СхемаОтчета.НастройкиПоУмолчанию); Объект.КомпоновщикНастроекОтчета.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность); |
|||
5
Вафель
14.01.19
✎
17:16
|
схему нельзя подменить, но можно переинициализировать компоновщик
|
|||
6
ИС-2
naïve
14.01.19
✎
17:23
|
(4) да, передаю адрес. Попробую в модуле объекта переинициализировать, только как туда передать через Метод ОткрытьФорму URL адреса временного хранилища (вед дополнительных свойств нет)?
|
|||
7
ИС-2
naïve
14.01.19
✎
17:40
|
фактически надо подобный код преврать в код для УФ
НоваяСКД = Отчеты.ABCАнализПокупателей.Создать().СхемаКомпоновкиДанных; ОтчетРасшифровка = Отчеты.УниверсальныйОтчет.Создать(); // тут не понимаю как заполнить в отчетеобъекте СхемаКомпоновкиДанных ОтчетРасшифровка.СхемаКомпоновкиДанных = НоваяСКД; ОтчетРасшифровка.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(ОтчетРасшифровка.СхемаКомпоновкиДанных)); ОтчетРасшифровка.ПолучитьФорму().Открыть(); |
|||
8
aleks_default
14.01.19
✎
17:51
|
По моему надо что-то типа такого
ФормаОтчета = ОтчетРасшифровка.ПолучитьФорму(); ФормаОтчета.Объект.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ФормаОтчета.Объект.КомпоновщикНастроек.ЗагрузитьНастройки(настройки); ФормаОтчета.Объект.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность); ФормаОтчета.Открыть(); |
|||
9
Numerus Mikhail
14.01.19
✎
17:53
|
СхемаВХ = ПоместитьВоВременноеХранилище(СхемаМакет, ГУИД_Формы);
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаВХ)); ВариантСхемы = СхемаМакет.ВариантыНастроек[Число(Сред(ИмяКоманды,2,1))]; //тут номер варианта вычисляется, он у меня зашит в названии команды КомпоновщикНастроек.ЗагрузитьНастройки(ВариантСхемы.Настройки); //обрезаем второй символ, т.к. это и есть индекс настройки вытащил из рабочего |
|||
10
тарам пам пам
15.01.19
✎
09:10
|
(0) Если компоновщик не видит схемы, значит данные по переданному адресу врем хранилища уже были удалены. Проверь, как ты помещаешь во врем. хранилище схему - нужно это хранилище привязать к открываемой форме.
Как костыль в лоб можно попробовать так:
|
|||
11
ИС-2
naïve
22.01.19
✎
15:41
|
(10) но как теперь открыть общую форму отчета с ОтчетОбъект ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |