Имя: Пароль:
1C
1С v8
Программная установка параметров СКД
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].Значение=НачалоДня(ТекущаяДата());
Настройки  = СКД.НастройкиПоУмолчанию;

И все взлетело...Всем спасибо огромное. Тему можно закрыть.
Программист всегда исправляет последнюю ошибку.