Имя: Пароль:
1C
1С v8
Можно ли установить отбор в форме списка справочника через подписку на событие?
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
или в пользоватлеьские
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший