Отчет СКД. Программно заполнить настройки и сформировать
☑
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
спасибо
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан