|
СКД, программно установить отбор
| ☑ |
0
ildary
13.08.19
✎
15:21
|
Уважаемые специалисты, подскажите пожалуйста, почему данный код выполняется, но не даёт эффекта:
Внешний отчёт на СКД, надо сделать принудительный отбор по одному из полей (оно уже в доступных отборах).
ПриСозданииНаСервере()
ОтборФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию("Иванов Иван Иванович", Истина);
ПолеФизЛицо = Новый ПолеКомпоновкиДанных("ФизическоеЛицо");
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
Настройки = ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки();
Для Каждого Стр Из Настройки.Отбор.Элементы Цикл
Если Стр.ЛевоеЗначение <> ПолеФизЛицо Тогда
Стр.Использование = Ложь;
Продолжить;
КонецЕсли;
Стр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Стр.ПравоеЗначение = ОтборФизЛицо;
Стр.Использование = Истина;
КонецЦикла;
ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ЗначениеВРеквизитФормы(ОтчетОбъект, "Отчет");
в результате в ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы - у нужного элемента отбора в отладчике всё заполнено, а на форме отчета - пусто.
|
|
1
НадюшаЯ
13.08.19
✎
15:34
|
а разве нет отчет.КомпоновщикНастроек на форме, зачем эти свистопляски с переходом в объект отчета
|
|
2
ildary
14.08.19
✎
07:44
|
(1) На самом деле изначально я не делал переход, а писал ЭтаФорма.Отчет.КомпоновщикНастроек, но так тоже не работало.
|
|
3
ildary
14.08.19
✎
07:54
|
Вдогонку - мой код на самом деле работает, но в ПриОткрытии() Отчет.КомпоновщикНастроек снова пустой (без отбора).
|
|
4
toypaul
гуру
14.08.19
✎
08:04
|
(3) потому что до ПриОткрытии отрабатывает загрузка польз. настроек. установку нужно делать не при создании, а при открытии или при загрузке польз настроек
|
|
5
ildary
14.08.19
✎
10:28
|
(4) Большое спасибо за науку. СКД как атом - каждый раз узнаёшь что-то новое.
|
|