Имя: Пароль:
1C
 
Передача параметра в макет СКД
0 Tolyas
 
12.11.10
11:46
Сабж. В модуле нахожу значение руководителя, его надо передать в макет СКД. Это возможно? Если да, то как?
1 supremum
 
12.11.10
11:52
(0) Можно
2 Tolyas
 
12.11.10
11:57
(1) Как?
3 Tolyas
 
12.11.10
12:19
Дурацкий вариант - написать в условиях запроса после

ГДЕ
  &Руководитель = &Руководитель

Тогда этот параметр можно будет указать в макете компановке.
Другие варианты?
4 supremum
 
12.11.10
12:24
5 Tolyas
 
12.11.10
12:49
(4) Там речь идет о параметрах самой скд. А мне надо передать параметр в макет.
6 supremum
 
12.11.10
13:00
(5) Если правильно понял вопрос, то можно так:

   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТабДок);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

ТабДок - это табличный документ
7 supremum
 
12.11.10
13:03
Пример:

   // Подготавливаем результат запроса для СКД
   ВнешниеНаборыДанных = Новый Структура;
   ВнешниеНаборыДанных.Вставить("РезультатЗапроса",Результат);

   // Считываем схему СКД
   СхемаКомпоновкиДанных = ОтчетОбъект.СхемаКомпоновкиДанных;
   
   // Считываем настройки СКД
   Настройки = ОтчетОбъект.КомпоновщикНастроек.Настройки;

   // Для расшифровки СКД
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   
   // Подготавливаем макет компоновки
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   
   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);

   // Инициализируем процессор СКД
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);                                        

   ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;

   ТабДок.Очистить();
   Макет=ПолучитьМакет("Макет");
   ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок");
   ОбластьЗаголовок.Параметры.ТекДата=ЭлементыФормы.КурсНаДату.Значение;
   ТабДок.Вывести(ОбластьЗаголовок);

   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ТабДок);
   ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
8 Tolyas
 
12.11.10
13:14
(7) Спасибо. Все же интересовал вопрос: можно ли в макет самой СКД передать параметр. Чтобы не создавать свой макет...