Имя: Пароль:
1C
1С v8
Как программно создать настройки в СКД
0 ifoxy
 
20.09.11
14:57
Здравствуйте! у меня есть отчет на СКД. Могу ли я как-то программно заполнять настойки отчета, например устанавливать отборы? Мне нежно, чтобы насторйки были индивидуальны для каждого пользователя.
1 Смешной 1С
 
20.09.11
15:00
Вот пример, Думаю поймете:    

Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
   
   ПараметрДанных= Настройки.ПараметрыДанных.Элементы.Добавить();
   ПараметрДанных.Параметр = Новый ПараметрКомпоновкиДанных("Заказ");    
   ПараметрДанных.Значение = СсылкаНаОбъект.Ссылка;
   ПараметрДанных.Использование = Истина;

   МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
   
   ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки);
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ТабличноеПолеРезультат);
2 ifoxy
 
21.09.11
11:46
Я сделела вот так

Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
   
   ПараметрДанных = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ПараметрДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БракСумма");    
   ПараметрДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ПараметрДанных.ПравоеЗначение = 0;
   ПараметрДанных.Использование = Истина;

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

смотрю отладчиком, в отбор все записывается нормально, но на практике не работает, и в настройках отчета поле отбор пусто.
3 ifoxy
 
21.09.11
12:05
а надо было так:

ПараметрДанных = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   ПараметрДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("БракСумма");    
   ПараметрДанных.Использование = Истина;    
   ПараметрДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
   ПараметрДанных.ПравоеЗначение = 0;