|
Можно ли установить отбор в форме списка справочника через подписку на событие? |
☑ |
0
altaykniga
28.04.18
✎
12:58
|
Доброго дня, уважаемые специалисты. Прошу подсказки умных людей
При открытии формы списка справочника необходимо устанавливать отбор (отображать только те элементы, код которых начинается с префикса данной ИБ)
В модуле формы написал такой код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если НЕ РольДоступна("АрБус_ОтображениеОбособленныхСправочниковБезУчетаПрефикса") Тогда
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НачинаетсяС;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
ЭлементОтбора.ПравоеЗначение = ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы");
КонецЕсли;
КонецПроцедуры
а можно ли реализовать такой отбор в подписке на событие? Чтобы не изменять форму списка необходимых справочников...
|
|
1
Вафель
28.04.18
✎
12:59
|
через расширение можно
|
|
2
Fragster
гуру
28.04.18
✎
13:00
|
в обработке получения формы добивать в параметры отбор. но это не самый хороший способ - прятать поведение из самого очевидного места. И так проблемы с правами, функциональными опциями и прочим, а тут еще отбор неизвестно откуда будет накладываться.
|
|
3
Buster007
28.04.18
✎
13:10
|
пишется арбуЗ
|
|
4
altaykniga
28.04.18
✎
15:38
|
(2) а как в ОбработкаПолученияФормы добавить в параметры Отбор?
Если НЕ РольДоступна("АрБус_ОтображениеОбособленныхСправочниковБезУчетаПрефикса") Тогда
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Код");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НачинаетсяС;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
ЭлементОтбора.ПравоеЗначение = ПолучитьФункциональнуюОпцию("ПрефиксИнформационнойБазы");
КонецЕсли;
что написать вместо
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
|
5
altaykniga
28.04.18
✎
15:39
|
как из подписки на событие обратиться к реквизиту формы "Список" ?
|
|
6
cons74
28.04.18
✎
15:44
|
(1) самый правильный вариант. Берешь в расширение форму и делешь с ней в расширении что хочешь.
|
|
7
Fragster
гуру
28.04.18
✎
16:06
|
(4) там в параметрах есть параметр Параметры, в котором можно добавить отбор, подробнее в СП по словам "расширение управляемой формы динамического списка"
(5) не надо тебе к нему получать доступ
|
|
8
Вафель
28.04.18
✎
16:07
|
(7) в параметр отбор можно только отбор на равно передать
|
|
9
altaykniga
28.04.18
✎
16:18
|
(8) вот, а мне надо "НачинаетсяС"
|
|
10
Вафель
28.04.18
✎
16:37
|
если у тебя ерп/ут11 то есть процедура Модификация.ПриСозданииНаСервере
|
|
11
Fragster
гуру
28.04.18
✎
16:54
|
(8) ну тогда передавай в фиксированные настройки
|
|
12
Fragster
гуру
28.04.18
✎
16:54
|
или в пользоватлеьские
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший