Имя: Пароль:
1C
1С v8
Отчет СКД. Программно заполнить настройки и сформировать
0 Slon747
 
28.10.15
16:27
Стандартные отчеты на СКД в УТ.
Пытаюсь программно заполнять отбор перед формированием отчета.
----------
    ОтчетПоБонусам = Отчеты.НакопленныеБонусы.Создать();
    
    НастройкиКД = ОтчетПоБонусам.КомпоновщикНастроек.ПолучитьНастройки();
    
    ДоступноеПолеКомпоновкиДисконтнойКарты = ОтчетПоБонусам.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора.Элементы.Найти("ДисконтнаяКарта");
    НовыйЭлементОтбора = НастройкиКД.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    НовыйЭлементОтбора.ВидСравнения        = ВидСравненияКомпоновкиДанных.Равно;
    НовыйЭлементОтбора.Использование    = Истина;
    НовыйЭлементОтбора.ЛевоеЗначение    = ДоступноеПолеКомпоновкиДисконтнойКарты.Поле;
    НовыйЭлементОтбора.ПравоеЗначение    = ВыбраннаяКарта;
    
    ФормаОтчета = ОтчетПоБонусам.ПолучитьФорму();    
    ОтчетПоБонусам.СформироватьОтчет(ФормаОтчета.ЭлементыФормы.Результат,,, ФормаОтчета);
    ФормаОтчета.Открыть();
----------

Если в отчете не было сохраненных настроек с признаком "Использовать при открытии" то всё красиво получается.
Если же такая настройка есть, то после формирования отчета его настройки перезаполняются из ранее сохраненных.
Как этого избежать?
1 Timon1405
 
28.10.15
16:44
скорее всего не хватает строчки
ОтчетПоБонусам.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКД);
перед формированием
2 Slon747
 
28.10.15
16:52
(1) Добавил, но не помогло.
3 Slon747
 
28.10.15
16:54
Получилось.
Нужно эту строку выполнять после открытия формы отчета.
4 Slon747
 
28.10.15
16:56
спасибо