![]() |
![]() |
![]() |
|
v8.2 УФ Как правильно открыть и сформировать отчет. | ☑ | ||
---|---|---|---|---|
0
Garkin
28.12.10
✎
00:27
|
Есть отчет "КарточкаСчета" в УФ на СКД.
У отчета есть реквизиты НачДата, КонДата, Счет. С помощью функции &НаКлиенте Процедура ОткрытьОтчет() ПараметрыОтчета=Новый Структура("СформироватьПриОткрытии,Счет,НачДата,КонДата",Ложь,Счет,НачДата,КонДата); ОткрытьФорму("Отчет.КарточкаСчета.Форма.ФормаОтчета",ПараметрыОтчета); КонецПроцедуры Открываю отчет "КарточкаСчета" У отчета "КарточкаСчета" срабатывает процедура &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Параметры.Свойство("НачДата",Отчет.НачДата); Параметры.Свойство("КонДата",Отчет.КонДата); Параметры.Свойство("Счет",Отчет.Счет); // Проверяю отладчиком Отчет.НачДата,Отчет.КонДата, Отчет.Счет - заполнены!!! КонецПроцедуры Далее срабатывает процедура модуля Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Настройки = КомпоновщикНастроек.Настройки; // Устанавливаем параметры, ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных; ПараметрСКД.УстановитьЗначениеПараметра("НачалоПериода",НачДата); ПараметрСКД.УстановитьЗначениеПараметра("КонецПериода",КонДата); ПараметрСКД.УстановитьЗначениеПараметра("Счет",Счет); // но неожиданно НачДата, КонДата, Счет - оказываются не заполненными :( КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры Но оказывается что ЭтотОбъект.Счет, ЭтотОбъект.НачДата и ЭтотОбъект.КонДата - не заполнены :( Подскажите что я делаю не так? Как сделать правильно? |
|||
1
Beans
28.12.10
✎
10:34
|
&НаКлиенте
Процедура ОткрытьКатрочкуСчета(Команда) Счет = ВыбратьСчет(); НачДата =Дата(2010,01,01); КонДата = Дата(2010,01,05); УсловияОтбора = Новый Структура(); УсловияОтбора.Вставить("Счет" ,Счет); УсловияОтбора.Вставить("НачалоПериода" ,НачДата); УсловияОтбора.Вставить("КонецПериода" ,КонДата); ПараметрыОтчета=Новый Структура("Отбор,СформироватьПриОткрытии" ,УсловияОтбора, Истина); ОткрытьФорму("Отчет.КарточкаСчета.Форма.ФормаОтчета",ПараметрыОтчета); КонецПроцедуры &НаСервере Функция ВыбратьСчет() Возврат ПланыСчетов.Хозрасчетный.СырьеИМатериалы; КонецФункции |
|||
2
Garkin
28.12.10
✎
10:49
|
(1) Не, я так не согласен, вопервых "счет" ,"НачалоПериода", "КонецПериода" - это параметры виртуальной таблицы, и хотелось бы их там и оставить, а во вторых отбор по периоду как работать будет?
|
|||
3
Beans
28.12.10
✎
11:26
|
задаем праметры виртуальной таблицы:
УсловияОтбора.Вставить("Счет" ,Счет); УсловияОтбора.Вставить("НачалоПериода" ,НачДата); УсловияОтбора.Вставить("КонецПериода" ,КонДата); в типовой БП 3.0 КОРП работать не будет! т.к. там програмно меняется схема компоновки |
|||
4
Garkin
28.12.10
✎
12:39
|
(3) Неожиданно, но это действительно работает о_О ,
правда только стандартная обработка, до тек пор пока я не пытаюсь переопределить процедуру "ПриКомпоновкеРезультата", но это уже второй вопрос. А пока - Большое человеческое спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |