|
Как дать пользователю отключить отбор? | ☑ | ||
---|---|---|---|---|
0
Хосе
07.05.20
✎
19:18
|
Включаю отбор так, но после этого он не выключается.
И даже через настройки - отбор не отключается. Как дать отключить? ИскЭлементОтбора = Неопределено; Для Каждого ЭлементОтбора ИЗ ЭтаФорма.Список.Отбор.Элементы Цикл Если ЭлементОтбора.Представление = "_Контрагент" Тогда ИскЭлементОтбора = ЭлементОтбора; Прервать; КонецЕсли; КонецЦикла; Если ИскЭлементОтбора = Неопределено Тогда ИскЭлементОтбора = ЭтаФорма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ИскЭлементОтбора.Представление = "_Контрагент"; КонецЕсли; ИскЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ИскЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных(ПолеКонтрагента); ИскЭлементОтбора.ЛевоеЗначение = ИскКонтрагент; ИскЭлементОтбора.Использование = ЗначениеЗаполнено(ИскКонтрагент); ИскЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; |
|||
1
vicof
07.05.20
✎
19:54
|
Попутал левое и правое значение
|
|||
2
Хосе
07.05.20
✎
22:02
|
(1) не суть, работает. Как отключить то?
|
|||
3
ГдеСобака Зарыта
07.05.20
✎
22:11
|
Юзать не отбор списка, а настройки компоновщика настроек списка.
|
|||
4
ГдеСобака Зарыта
07.05.20
✎
22:16
|
Или пользовательские настройки компановщика. В этих настройках компановщика без стакана не разберешься.
|
|||
5
Хосе
08.05.20
✎
11:52
|
Вот тут пишут, что наоборот, надо неудаляемые настройки, код таой же как у меня, только наоборот делают запрет:
v8: Как пользователям запретить удаление условия отбора в форме списка? |
|||
6
Хосе
08.05.20
✎
13:54
|
Сам зашел в настройки отбора, ввел их вручную, понял, что они заносятся в пользовательские настройки.
Сделал код через пользовательские настройки, но понял, что они не отключаются, т.к. на форму не выводится элемент, показывающий пользовательские настройки: ИскЭлементОтбора = Неопределено; //ЭтаФорма.Список.Отбор.Элементы //ЭтаФорма.Список.КомпоновщикНастроек.Настройки.Отбор //ЭтаФорма.Список.КомпоновщикНастроек.Настройки.Отбор.Элементы Для Каждого ЭлементОтбора ИЗ ЭтаФорма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл Если ТипЗНч(ЭлементОтбора) = Тип("ОтборКомпоновкиДанных") Тогда ЭлементыДляОтбора = ЭлементОтбора.Элементы; КонецЕсли; КонецЦикла; //ЭлементыДляОтбора = ЭтаФорма.Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; Для Каждого ЭлементОтбора ИЗ ЭлементыДляОтбора Цикл Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") И ЭлементОтбора.Представление = Маркер Тогда ИскЭлементОтбора = ЭлементОтбора; Прервать; КонецЕсли; КонецЦикла; Если ИскЭлементОтбора = Неопределено Тогда ИскЭлементОтбора = ЭлементыДляОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ИскЭлементОтбора.Представление = Маркер; КонецЕсли; ИскЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ИскЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПолеКонтрагента); ИскЭлементОтбора.ПравоеЗначение = ИскКонтрагент; ИскЭлементОтбора.Использование = ЗначениеЗаполнено(ИскКонтрагент); ИскЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ; Посмотрел, как работает отбор, чтобы не сильно ломать типовое приложение, сделаю чтобы при накладывании отбора рядом с кнопкой вызова отбора появлялась кнопка отключения отбора. После нажатия она будет исчезать. Это самый естественный вариант, остальные слишком нерациональные. Вопрос закрыт. (4) Большое спасибо за направление хода мысли. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |