|
Программная установка параметров СКД |
☑ |
0
Гравер
05.12.14
✎
12:07
|
Здравствуйте. Есть внешний отчет на СКД. В нем два макета СКД. В запросах у них отличия в условиях и параметрах к ним. Никак не удается программно установить параметры к ним в зависимости от условий при запуске. Установка только срабатывает, если один из них выбран в качестве основного СКД формы. Не подскажете, в чем засада??
|
|
1
temmy70
05.12.14
✎
12:09
|
два макета - это два варианта (настройки)?
|
|
2
Гравер
05.12.14
✎
12:12
|
(1) Ну что-то вроде того. Настройки исключительно внутренние, пользователю не выводятся.
|
|
3
Гравер
05.12.14
✎
12:20
|
если сокрлп(ПараметрыСеанса.ТекущийПользователь.Родитель.Код)="бла-бла-бла" тогда
СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных1");
Настройки = КомпоновщикНастроек.Настройки;
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ТекДата", НачалоДня(ТекущаяДата()));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Дата", НачалоДня(ТекущаяДата()-2592000));//-30 дней от текущей
иначе
СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = КомпоновщикНастроек.Настройки;
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Исполнитель", ПараметрыСеанса.ТекущийПользователь);
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ТекДата", НачалоДня(ТекущаяДата()));
конецесли;
Если Установить основным СКД первый, тогда ругается что нет параметров второго, и наоборот....
|
|
4
temmy70
05.12.14
✎
12:31
|
сделать выбор параметра в самом запросе не получается?
|
|
5
Гравер
05.12.14
✎
12:34
|
Честно говоря не знаю, как в запрос передать, от кого запускается обработка...)
|
|
6
Гравер
05.12.14
✎
12:34
|
Там ведь по сути и сами условия меняются в запросе.
|
|
7
temmy70
05.12.14
✎
12:36
|
| И (&ЭтоПользователь1 И Параметр1 = &Парам1
| ИЛИ НЕ &ЭтоПользователь1)
| И (&ЭтоПользователь2 И Параметр2 = &Парам2
| ИЛИ НЕ &ЭтоПользователь2)
как-то так может
|
|
8
DexterMorgan
05.12.14
✎
12:39
|
Настройки = КомпоновщикНастроек.Настройки;
заменить на
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
|
|
9
Гравер
05.12.14
✎
13:14
|
Нашел решение проблемы, путем непосредственного установления параметров
СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Скд.Параметры[0].Значение=ПараметрыСеанса.ТекущийПользователь;
Скд.Параметры[1].Значение=НачалоДня(ТекущаяДата());
Настройки = СКД.НастройкиПоУмолчанию;
И все взлетело...Всем спасибо огромное. Тему можно закрыть.
|
|