0
agorbunov
02.04.13
✎
10:35
|
Версия платформы 8.2.16.368.
Есть отчет (не внешний), у него две управляемых формы. В первой форме интерактивно устанавливаются настройки компоновщика. После этого открывается вторая форма:
ФормаОтчета = ПолучитьФорму("Отчет.ИмяОтчета.Форма.ФормаОтчета", , ЭтаФорма, КлючУникальности);
ФормаОтчета.ЗакрыватьПриЗакрытииВладельца = истина;
КопироватьДанныеФормы(ЭтаФорма.Отчет, ФормаОтчета.Отчет);
ФормаОтчета.Открыть();
В открывшейся форме видны все настройки, которые были сделаны в первой форме. Нажимаю кнопку на форме - и смотрю отладчиком:
&НаКлиенте
Процедура СформироватьОтчет(Команда)
// Вставить содержимое обработчика.
Вывод = СформироватьОтчетНаСервере();
КонецПроцедуры
&НаСервере
Функция СформироватьОтчетНаСервере()
Так вот на клиенте все у Отчет.КомпоновщикНастроек есть все отборы и доступные поля. Но когда управление переходит на сервер, то все настройки компоновщика теряются. Там нет ни доступных, ни выбранных полей.
Что я не так делаю?
|
|
1
agorbunov
02.04.13
✎
10:37
|
(0) Компоновщик инициализируется в первой форме так:
Отчет.АдресСхемы = ПоместитьВоВременноеХранилище(СКД, УникальныйИдентификатор);
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет.АдресСхемы));
|
|
2
agorbunov
03.04.13
✎
08:49
|
Пока единственное, что приходит в голову - во второй форме компоновщику заново загрузить настройки. Правда реализация этого получается совсем уж кривая. Получается, что необходимо сделать 2 контекстных серверных вызова и гонять настройки туда-сюда.
//Первая форма
&НаСервере
Функция ПолучитьНастройкиКомпоновки()
Возврат Отчет.КомпоновщикНастроек.ПолучитьНастройки();
КонецФункции
//Вторая форма
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Настройки = ЭтаФорма.ВладелецФормы.ПолучитьНастройкиКомпоновки();
ЗагрузитьНастройкиКопоновки(Настройки);
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьНастройкиКопоновки(НастройкиКопоновки)
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет.АдресСхемы));
Отчет.КомпоновщикНастроек.ЗакгрузитьНастройки(НастройкиКопоновки);
КонецПроцедуры
Есть идеи, как это сделать проще?
|
|