Невозможно применить фиксированные настройки. Пересекаются элементы отбора.
Полный текст ошибки:
Параметры Отбора, Сортировки, Группировки или список отображаемых полей заданы неверно. по причине: Невозможно применить фиксированные настройки. Пересекаются элементы отбора.
Воспроизведение ошибки
Ошибка появляется если в какой либо форме списка или выборка указать отбор, а после форму закрыть. При следующем открытии формы получим сообщение об ошибке.
Причина
Причина в использовании новой технологии в еще не подготовленной конфигурации, а именно свойство динамического списка «АвтоматическоеСохранениеПользовательскихНастроек».
Решение
Два варианта решения данной проблемы:
1. Необходимо очистить сохраненные настройки пользователя. Пример для УТ 11.1: Переходим в меню «Администрирование — Настройки пользователей и прав — Очистка настроек» в появившейся форме выбираем пользователя(ей) и чистим. Такой вариант даст разовый результат, если пользователь снова поставит отбор, то получим такую же ошибку.
UPD Иногда типовая обработка не очищает полностью настройки пользователя, тогда можно их удалить самостоятельно (см. ниже “Очистка произвольных настроек из хранилища системных настроек”)
2. В форме списка или выбора элемента необходимо зайти в свойства динамического списка и свойству «АвтоматическоеСохранениеПользовательскихНастроек» установить значение «Ложь».
Очистка произвольных настроек из хранилища системных настроек
Задача
В ИБ с конфигурацией УТ 11 у всех пользователей очистить настройки формы элемента справочника «Номенклатура».
Решение
В конфигурациях на БСП есть утилита копирования/очистки настроек пользователя, но в некоторых ситуациях, обработка очищает не все настройки.
Настройки хранятся в хранилище системных настроек, получим выборку и в цикле будем сообщать значения настроек.
Выборка = ХранилищеСистемныхНастроек.Выбрать(); Пока Выборка.Следующий() Цикл ТекстСообщения = "КлючНастроек " + Выборка.КлючНастроек + "; КлючОбъекта " + Выборка.КлючОбъекта + "; Пользователь " + Выборка.Пользователь + "; Представление" + Выборка.Представление; ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); КонецЦикла;
В окне сообщение получим примерный текст:
КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаСписка/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаЭлемента/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаВыбораГруппы/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаВыбора/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаСписка/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаЭлемента/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаВыбораГруппы/Такси/НастройкиОкна; Пользователь Пользователь1; Представление КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаВыбора/Такси/НастройкиОкна; Пользователь Пользователь1; Представление
Проанализировав текст дописываем в наш код проверку на ключа объекта и при необходимости будем удалять настройку
Выборка = ХранилищеСистемныхНастроек.Выбрать(); Пока Выборка.Следующий() Цикл Если Найти(Выборка.КлючОбъекта, "Справочник.Номенклатура.Форма.ФормаЭлемента") <> 0 Тогда ТекстСообщения = "КлючНастроек " + Выборка.КлючНастроек + "; КлючОбъекта " + Выборка.КлючОбъекта + "; Пользователь " + Выборка.Пользователь + "; Представление" + Выборка.Представление; ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); ХранилищеСистемныхНастроек.Удалить(Выборка.КлючОбъекта, Выборка.КлючНастроек, Выборка.Пользователь); КонецЕсли; КонецЦикла;
P.S. У процедуры Удалить() хранилища системных настроек есть 3 обязательных параметра, но в эти параметры можно передать значение Неопределено. В этом случае будут удалены все данные. Код по удалению настроек из последнего листинга можно заменить строкой ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, Неопределено);
Информация с ресурса: http://guesto.ru/
P.S. Обработка для редактирования настроек “Стандартное хранилище настроек (управляемые формы)“
No Comments