|
Динамический список, скрыть отбор | ☑ | ||
---|---|---|---|---|
0
salvator
21.02.24
✎
13:14
|
Добрый день.
Каким образом можно скрыть поля отбора динамического списка, чтобы они не были видны пользователю? Пробовал метод УстановитьОграниченияИспользованияВОтборе(<Поля>), получаю ошибку "параметры отбора сортировки группировки или список отображаемых полей заданы неверно". Потом наткнулся на информацию: "Методы динамического списка УстановитьОграниченияИспользованияВГруппировке(), УстановитьОграниченияИспользованияВОтборе(), УстановитьОграниченияИспользованияВПорядке(), ПолучитьОграниченияИспользованияВГруппировке(), ПолучитьОграниченияИспользованияВОтборе(), ПолучитьОграниченияИспользованияВПорядке() объявляются устаревшими и не рекомендуются к использованию. Рекомендуется использовать свойства динамического списка ОграничениеИспользования и ОграничениеИспользованияРеквизитов полей динамического списка." Но в "Список.Поля" нет элементов. Можно эту задачу как-то реализовать? |
|||
1
Bigbro
21.02.24
✎
13:54
|
УстановитьЭлементОтбораДинамическогоСписка, не?
|
|||
2
salvator
21.02.24
✎
14:14
|
(1) Я предварительно устанавливаю отбор по полю при создании на сервере. Режим отображения устанавливаю в значение "недоступный". Но дополнительно хочу убрать это поле из доступных отборов.
|
|||
3
AlexeyKh
21.02.24
✎
14:51
|
попробуйте программно, сюда писать свой отбор
Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы |
|||
4
salvator
21.02.24
✎
15:00
|
(3) Я делаю так:
ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СчетДт"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; ЭлементОтбора.ПравоеЗначение = Счет; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СчетКт"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; ЭлементОтбора.ПравоеЗначение = Счет; ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; И после этого в "Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор.Элементы" группа отбора присутствует |
|||
5
AlexeyKh
21.02.24
✎
15:40
|
у себя проверял, при добавление в ФиксНастройки отбора,
при работе пользователя в настройках Списка в отборе этих фикс.Отборов не видно. но иногда можно словить ошибку Какое-то там пересечение отборов... |
|||
6
Bigbro
21.02.24
✎
15:49
|
в этом видимо и задача. после установки своих отборов сделать для пользователя недоступным то что уже установлено. чтоб не ловить ошибки на пересечении. я не знаю как так сделать.
|
|||
7
mikecool
21.02.24
✎
15:53
|
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора
|
|||
8
mikecool
21.02.24
✎
15:53
|
(6) а для этого есть УстановитьПользовательскийОтборСписка
|
|||
9
salvator
21.02.24
✎
16:01
|
(6) Да, именно это и нужно
(8) Что это за метод? СП молчит про него. |
|||
10
mikecool
21.02.24
✎
16:06
|
(9) а поискать в конфиге, в районе ОбщегоНазначенияКлиентСервер
|
|||
11
salvator
21.02.24
✎
16:37
|
(10) В БП3 нет такого, есть только УстановитьЭлементОтбораДинамическогоСписка, там происходит такая же установка отбора в фиксированные настройки.
|
|||
12
salvator
21.02.24
✎
23:10
|
Если делать не через установку отборов, а изменить текст запроса динамического списка и добавить в него нужное условие, то в принципе рабочий вариант. И пофиг на то, какие отборы добавит пользователь, ошибки пересечения отборов не будет.
|
|||
13
salvator
21.02.24
✎
23:11
|
+(12) Текст запроса программно изменить, имеется в виду.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |