|
Установить отбор программно в разных вариантах отчета |
☑ |
0
Nyarlathotep
19.02.18
✎
10:10
|
Всем привет!
Нужно установить отбор программно в разных вариантах одного отчета (во всех вариантах поле, по которому делаем отбор называется по разному, каждый вариант берет банные из своего набора данных).
Делаю в модуле объекта вот так:
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
НовыйЭлементОтбора = НастройкиОтчета.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ПолеОтбора = Новый ПолеКомпоновкиДанных("МенеджерДокумента");
НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
НовыйЭлементОтбора.Использование = Истина;
НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлементОтбора.ПравоеЗначение = Справочники.Пользователи.НайтиПоНаименованию("Мой пользователь");
Для одного варианта, в котором есть поле "Менеджер документа" все работает, но все остальные варианты не показывают ничего вообще.
А как правильно сделать, чтоб отбор установился для всех вариантов?
|
|
1
nordbox
19.02.18
✎
10:12
|
И не будет, внимательно читай свой код
|
|
2
Nyarlathotep
19.02.18
✎
10:14
|
Как мне в модуле объекта понять, какой именно вариант используется, чтобы указать нужное поле отбора?
|
|
3
Nyarlathotep
19.02.18
✎
10:14
|
(1) А что с кодом то не так?
|
|
4
nordbox
19.02.18
✎
10:14
|
НУ дык получи вариант отчета
|
|
5
Nyarlathotep
19.02.18
✎
10:15
|
(4) А как его получить? Я с СКД программно не работал еще...
|
|
6
nordbox
19.02.18
✎
10:17
|
Надеюсь модераторы не будут ругаться
Дальше разберешься
|
|
7
Nyarlathotep
19.02.18
✎
10:31
|
(0) Вот так получилось:
если НастройкиОтчета.ДополнительныеСвойства.ВариантНаименование = "Основной" тогда
НовыйЭлементОтбора = НастройкиОтчета.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ПолеОтбора = Новый ПолеКомпоновкиДанных("МенеджерДокумента");
НовыйЭлементОтбора.ЛевоеЗначение = ПолеОтбора;
НовыйЭлементОтбора.Использование = Истина;
НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлементОтбора.ПравоеЗначение = Справочники.Пользователи.НайтиПоНаименованию("Мой пользователь");
конецесли;
|
|