ошибка при установке отбора

1. eda76 20.09.24 12:12 Сейчас в теме
подскажите, можно ли обойти такую ошибку
"Параметры Отбора, Сортировки, Группировки или список отображаемых полей заданы неверно.
по причине:
Невозможно применить фиксированные настройки. Пересекаются элементы отбора."


открываю подбор с отбором
ПараметрыВыбора = Новый Структура("РежимВыбора",Истина);
	Отбор	= Новый Структура("Уволен",Ложь);
	ПараметрыВыбора.Вставить("Отбор",Отбор);
	ОткрытьФорму("Справочник.Сотрудники.ФормаВыбора",ПараметрыВыбора,ЭтаФорма);


и если в настройках списка уже есть такой отбор то ругается
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. de0nis 512 20.09.24 12:27 Сейчас в теме
(1) Проверять при открытии есть ли такой же отбор в настройках списка. Если есть, то не устанавливать свой или снимать существующий.
5. eda76 20.09.24 12:35 Сейчас в теме
(3)
а как, как понимаю, я передал отбор стандартным механизмом, без переделки справочника
6. de0nis 512 20.09.24 12:41 Сейчас в теме
(5) Не совсем понял вопрос.. Перед установкой своего отбора проверить в свойствах списка какие пользовательские отборы установлены. На пример попробуй:

Форма = ОткрытьФорму("Справочник.Сотрудники.ФормаВыбора",ПараметрыВыбора,ЭтаФорма);
Форма.Список - проверяем есть ли отбор, если нет, то ставим, если есть, то не ставим.
8. eda76 23.09.24 17:57 Сейчас в теме
(6)
что то не получается, найти то нахожу но изменить не получается
	Для Каждого Стр из Форма.Список.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл 
		Если Стр.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Уволен") Тогда
			Нашел=Истина;
			Стр.Использование	= Истина;
			Стр.ВидСравнения	= ВидСравненияКомпоновкиДанных.Равно;
			Стр.ПравоеЗначение = Ложь;
		КонецЕсли;
	КонецЦикла;
	Если Не Нашел Тогда
		Стр	= Форма.Список.КомпоновщикНастроек.Настройки.Отбор.Элементы;
		ЭлементОтбора = Стр.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Уволен");
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ЭлементОтбора.ПравоеЗначение = Ложь;
	КонецЕсли;
Показать

реакции нет
если делаю
	Стр	= Форма.Список;
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Стр,"Уволен",Ложь,ВидСравненияКомпоновкиДанных.Равно,"НеУволен",Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);

ошибка такая же как при открытии
9. eda76 23.09.24 18:00 Сейчас в теме
(8) получилось только если удаляю
Форма = ОткрытьФорму("Справочник.Сотрудники.ФормаВыбора",ПараметрыВыбора,ЭтаФорма);
	Нашел=Ложь;
	Для Каждого Стр из Форма.Список.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл 
		Если Стр.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Уволен") Тогда
			Форма.Список.КомпоновщикНастроек.Настройки.Отбор.Элементы.Удалить(Стр);
		КонецЕсли;
	КонецЦикла;
	Стр	= Форма.Список;
	ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Стр,"Уволен",Ложь,ВидСравненияКомпоновкиДанных.Равно,"НеУволен",Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
	Форма.Открыть();
Показать
2. Burgunchic 5 20.09.24 12:17 Сейчас в теме
Установить стандартные настройки
Прикрепленные файлы:
4. eda76 20.09.24 12:34 Сейчас в теме
(2)
не прокатит, так как эти настройки могут пользователи потом поставить
10. user1936660 23.09.24 21:37 Сейчас в теме
(4)
не прокатит
Перед открытием формы удали в хранилище настроек сохраненное пользователем. Это даст гарантию, что никакой код не вмешается в обработчиках событий.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот