|
Програмно добавлять и удалять отборы в построитель отчета |
☑ |
0
serg-lom89
08.10.15
✎
16:10
|
Добрый день.Прошу помощи ребята.
Есть отчет и для него нужно допилить "быстрые" отборы.
на форму вынес списки значений заполнил их.
как теперь мне програмно добавлять отборы и удалять их если поле очищено?
Вот кусок небольшого прогрмного кода
отборы = ПостроительОтчета.Отбор;
Для Каждого ЭлементОтбора Из отборы Цикл
Если ЭлементОтбора.ПутьКданным =Имя Тогда
КонецЕсли;
КонецЦикла;
ОтборДобавленный= отборы.Добавить(Имя);
//ОтборДобавленный.Значение =ВыбОтветственныйМенеджер ;
ОтборДобавленный.Использование= истина;
ОтборДобавленный.ВидСравнения=ВидСравнения.Равно;
//отбор =ПостроительОтчета.Отбор;
добавлять добавляет но ругается на поле сравнения...(значение не вяляется обьектным типом")
и как мне програмно удалять поля с отборов?
|
|
1
Господин ПЖ
08.10.15
✎
16:12
|
из типовой взять нельзя? там все готовое есть... только описать надо - сама нарисует
|
|
2
serg-lom89
08.10.15
✎
16:14
|
(1) ну мне бы в первую очередь разобраться как нить в этом...как то для компоновщика делал так получилось..тут что то никак
|
|
3
PuhUfa
08.10.15
✎
16:31
|
Примечание:
Добавление возможно только из коллекции доступных полей.
Пример:
Отбор = ОтчетОстатки.ПостроительОтчета.Отбор;
Если Отбор.Найти("Номенклатура") = Неопределено Тогда
Отбор.Добавить("Номенклатура");
КонецЕсли;
Отбор["Номенклатура"].Использование = Истина;
Отбор["Номенклатура"].Значение = Номенклатура;
Отбор["Номенклатура"].ВидСравнения =
?(Номенклатура.ЭтоГруппа,
ВидСравнения.ВСпискеПоИерархии,
ВидСравнения.Равно);
(с) СП
|
|
4
serg-lom89
08.10.15
✎
16:37
|
(3) спс.
а как удалить определенный отбор?
|
|
5
Михаил Козлов
08.10.15
✎
16:40
|
Найти и удалить:
ненужныйОтбор = Отбор.Найти("Номенклатура");
Если ненужныйОтбор<>Неопределено Тогда
Отбор.Удалить(ненужныйОтбор);
КонецЕсли;
|
|
6
serg-lom89
08.10.15
✎
16:41
|
т.е. если я по кнопке настройки могу отобрать то програмно я никак не смогу это сделать,так?
|
|
7
serg-lom89
08.10.15
✎
16:48
|
(5) ненужныйОтбор = ПостроительОтчета.Отбор.Найти("Номенклатура");
Если ненужныйОтбор<>Неопределено Тогда
ПостроительОтчета.Отбор.Удалить(ненужныйОтбор);
КонецЕсли;
для этого кода почему то пишет
Несоответствие типов (параметр номер '1')
;
|
|
8
Eugene_life
08.10.15
✎
17:20
|
(7) Как вариант - отключать Использование у фильтра, вместо удаления.
|
|
9
serg-lom89
08.10.15
✎
18:07
|
(8) как вариант
|
|