Имя: Пароль:
1C
 
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) Неожиданно, но это действительно работает о_О ,
правда только стандартная обработка, до тек пор пока я не пытаюсь переопределить процедуру "ПриКомпоновкеРезультата", но это уже второй вопрос.
А пока - Большое человеческое спасибо.