Имя: Пароль:
1C
 
Программно изменить запрос в СКД в управляемой форме 8.2
0 программистище
 
24.12.10
13:40
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
   ОтчетОбъект.ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = ТекстЗапроса;
   ЗначениеВРеквизитФормы(ОтчетОбъект, "Отчет");

Не работает, не меняет запрос.
Как быть?
1 программистище
 
24.12.10
14:12
никто не знает?
2 Ns33
 
24.12.10
14:20
Насколько я понимаю, и не поменяет, надо заново компоновать макет.
Пример если не изменились поля.
В макете был запрос: "ВЫБРАТЬ 1 КАК Поле1 ИЗ Справочник.Номенклатура КАК Номенклатура";


&НаСервере
Функция   СформироватьНаСервере()
   ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
   ОтчетОбъект.ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = "ВЫБРАТЬ 2 КАК Поле1 ИЗ Справочник.Номенклатура КАК Номенклатура";
     
   СКД=ОтчетОбъект.ЭтотОбъект.СхемаКомпоновкиДанных;
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   Макет = КомпоновщикМакета.Выполнить(СКД, ОтчетОбъект.ЭтотОбъект.КомпоновщикНастроек.Настройки);
   
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(Макет);
   
   ТабДок=Новый ТабличныйДокумент;
   
   ПроцессорВывода= Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТабДок);
   ПроцессорВывода.Вывести(ПроцессорКомпоновки);
   
   Возврат ТабДок;    
КонецФункции
3 программистище
 
24.12.10
15:15
спасибо, попробую
4 Ns33
 
24.12.10
15:20
И для полного счастья, чтобы сразу работала расшифровка, тебе домашнее задание на тему "ДанныеРасшифровки=Новый ДанныеРасшифровкиКомпоновкиДанных".
5 программистище
 
24.12.10
17:51
решалось проще

СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных;
СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = ТекстЗапроса;
ДанныеРасшифровкиСКД = Новый ДанныеРасшифровкиКомпоновкиДанных;
ОтчетОбъект.СкомпоноватьРезультат(Результат, ДанныеРасшифровкиСКД);

вроде как
6 Ns33
 
24.12.10
19:04
(5) Хм, такого способа не знал. Спасибо что написал.
7 le_
 
24.12.10
19:36
(0) В качестве альтернативы программному изменению запроса: можно создать несколько схем компоновки в одном отчете и в зависимости от каких-то условий использовать ту или иную.