0
al_zzz
16.09.14
✎
07:38
|
Хочу вывести сформированный отчет программно пользователю, чтоб были заполнены пользовательские настройки. Код такой: &НаКлиенте
Процедура ОткрытьКалендарьБронирования(Команда)
Если Не ЗначениеЗаполнено(Объект.Подразделение) Тогда
Предупреждение("Не выбран объект бронирования!")
КонецЕсли;
ПараметрКоманды = СтруктураКалендаряБронированияНаСервере();
ОткрытьФорму("Отчет.КС_КалендарьБронирования.Форма",
Новый Структура("КлючВарианта, КлючНазначенияИспользования, ПараметрыОтчета, СформироватьПриОткрытии", "ИзДокумента", ПараметрКоманды, ПараметрКоманды, Истина),
,
"ДокументБронирования=" + Объект.Ссылка,
);
КонецПроцедуры
&НаСервере
Функция СтруктураКалендаряБронированияНаСервере()
Структура = Новый Структура;
Структура.Вставить("НачалоПериода",НачалоДня(ТекущаяДата()));
Структура.Вставить("КонецПериода",КонецДня(НачалоДня(ТекущаяДата())+30*24*60*60));
Структура.Вставить("ТекущаяДата",ТекущаяДата());
Структура.Вставить("Подразделение",Объект.Подразделение);
Возврат Структура;
КонецФункции
В форме отчета:
&НаСервере
// Процедура - обработчик события "ПриСозданииНаСервере" формы.
//
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
//Если Не Параметры.Свойство("Заказ") Тогда
//
// Сообщение = Новый СообщениеПользователю();
// Сообщение.Текст = НСтр("ru = 'Вызов отчета возможен только из документа ""Заказ покупателя""!'");
// Сообщение.Сообщить();
//
// Отказ = Истина;
// Возврат;
//
//КонецЕсли;
ПараметрыСКД = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных;
ПараметрСКДТекДата = ПараметрыСКД.Элементы.Найти("ТекущаяДата");
ПараметрСКДПодр = ПараметрыСКД.Элементы.Найти("Подразделение");
ПараметрСКДНП = ПараметрыСКД.Элементы.Найти("НачалоПериода");
ПараметрСКДКП = ПараметрыСКД.Элементы.Найти("КонецПериода");
Попытка
//Если ПараметрСКД <> Неопределено Тогда
Если ТипЗнч(Параметры.ПараметрыОтчета) = Тип("Структура") Тогда
ПараметрыСКД.УстановитьЗначениеПараметра("Подразделение", Параметры.ПараметрыОтчета.Подразделение);
ПараметрыСКД.УстановитьЗначениеПараметра("ТекущаяДата",Параметры.ПараметрыОтчета.ТекущаяДата);
ПараметрыСКД.УстановитьЗначениеПараметра("НачалоПериода",Параметры.ПараметрыОтчета.НачалоПериода);
ПараметрыСКД.УстановитьЗначениеПараметра("КонецПериода",Параметры.ПараметрыОтчета.КонецПериода);
//КонецЕсли;
СкомпоноватьРезультат();
КонецЕсли;
Исключение
КонецПопытки;
КонецПроцедуры // ПриСозданииНаСервере()
Если я включаю в варианте отчета "Основной" настройки в пользовательские, чтоб пользователь мог их скорректировать из своего сеанса, выводится пустой отчет с пустыми настройками. То же самое, если я добавляю новый вариант, скопированный с предыдущего.
ЧЯДНТ?
Конфа - УНФ.
|
|