Андрей Смирнов
Время чтения: ~7 мин.
Просмотров: 92

Настройки в 1C СКД

В некоторых релизах конфигураций на управляемом приложении на платформе 1С: Предприятие 8.3 можно получить следующую ошибку «Невозможно применить фиксированные настройки»error.png

Текст по кнопочке «Подробно»:

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

Воспроизведение ошибки

Ошибка появляется если в какой либо форме списка или выборка указать отбор, а после форму закрыть. При следующем открытии формы получим сообщение об ошибке.

Причина

Причина в использовании новой технологии в еще не подготовленной конфигурации, а именно свойство динамического списка «АвтоматическоеСохранениеПользовательскихНастроек».

Решение

Два варианта решения данной проблемы:

1. Необходимо очистить сохраненные настройки пользователя. Пример для УТ 11.1: Переходим в меню «Администрирование — Настройки пользователей и прав — Очистка настроек» в появившейся форме выбираем пользователя(ей) и чистим. Такой вариант даст разовый результат, если пользователь снова поставит отбор, то получим такую же ошибку.

UPD Иногда типовая обработка не очищает полностью настройки пользователя, тут разбираю метод очистки произвольных настроек.

2. В форме списка или выбора элемента необходимо зайти в свойства динамического списка и свойству «АвтоматическоеСохранениеПользовательскихНастроек» установить значение «Ложь».

solution.png Такой вариант решения можно считать временным, до момента обновления на релиз конфигурации с исправленной ошибкой.

Источник: Конференция специалистов 1С:Предприятие

Полный текст ошибки: 

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

Воспроизведение ошибки Ошибка появляется если в какой либо форме списка или выборка указать отбор, а после форму закрыть. При следующем открытии формы получим сообщение об ошибке.

Причина Причина в использовании новой технологии в еще не подготовленной конфигурации, а именно свойство динамического списка «АвтоматическоеСохранениеПользовательскихНастроек».

Решение Два варианта решения данной проблемы: 1. Необходимо очистить сохраненные настройки пользователя. Пример для УТ 11.1: Переходим в меню «Администрирование — Настройки пользователей и прав — Очистка настроек» в появившейся форме выбираем пользователя(ей) и чистим. Такой вариант даст разовый результат, если пользователь снова поставит отбор, то получим такую же ошибку. UPD Иногда типовая обработка не очищает полностью настройки пользователя, тогда можно их удалить самостоятельно (см. ниже «Очистка произвольных настроек из хранилища системных настроек») 2. В форме списка или выбора элемента необходимо зайти в свойства динамического списка и свойству «АвтоматическоеСохранениеПользовательскихНастроек» установить значение «Ложь».

Очистка произвольных настроек из хранилища системных настроек

Задача В ИБ с конфигурацией УТ 11 у всех пользователей очистить настройки формы элемента справочника «Номенклатура».

Решение В конфигурациях на БСП есть утилита копирования/очистки настроек пользователя, но в некоторых ситуациях, обработка очищает не все настройки.

Настройки хранятся в хранилище системных настроек, получим выборку и в цикле будем сообщать значения настроек.

  Выборка = ХранилищеСистемныхНастроек.Выбрать();    Пока Выборка.Следующий() Цикл    ТекстСообщения = "КлючНастроек " + Выборка.КлючНастроек  + "; КлючОбъекта " + Выборка.КлючОбъекта  + "; Пользователь " + Выборка.Пользователь  + "; Представление" + Выборка.Представление;    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);    КонецЦикла;  

В окне сообщение получим примерный текст:

  КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаСписка/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаЭлемента/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаВыбораГруппы/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.ВидыНоменклатуры.ФормаВыбора/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаСписка/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаЭлемента/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаВыбораГруппы/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  КлючНастроек ; КлючОбъекта Справочник.Номенклатура.ФормаВыбора/Такси/НастройкиОкна; Пользователь Пользователь1; Представление  

Проанализировав текст дописываем в наш код проверку на ключа объекта и при необходимости будем удалять настройку

  Выборка = ХранилищеСистемныхНастроек.Выбрать();    Пока Выборка.Следующий() Цикл    Если Найти(Выборка.КлючОбъекта, "Справочник.Номенклатура.Форма.ФормаЭлемента") <> 0 Тогда    ТекстСообщения = "КлючНастроек " + Выборка.КлючНастроек  + "; КлючОбъекта " + Выборка.КлючОбъекта  + "; Пользователь " + Выборка.Пользователь  + "; Представление" + Выборка.Представление;    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);    ХранилищеСистемныхНастроек.Удалить(Выборка.КлючОбъекта, Выборка.КлючНастроек, Выборка.Пользователь);    КонецЕсли;    КонецЦикла;  

P.S. У процедуры Удалить() хранилища системных настроек есть 3 обязательных параметра, но в эти параметры можно передать значение Неопределено. В этом случае будут удалены все данные. Код по удалению настроек из последнего листинга можно заменить строкой ХранилищеСистемныхНастроек.Удалить(Неопределено, Неопределено, Неопределено);

Информация с ресурса: http://guesto.ru/

P.S. Обработка для редактирования настроек «Стандартное хранилище настроек (управляемые формы)«

В данной статье мы рассмотрим какие виды настроек  1C СКД существуют. Разберем как создаются элементы пользовательских настроек на форме и узнаем где хранятся настройки отчетов в СКД.

Виды настроек

У каждого отчета созданного с помощью СКД есть реквизит КомпоновщикНастроек, который в свою очередь содержит различные варианты настроек, показанные на картинке:

061419_1200_1.png

  • Настройки – это настройки варианта отчета. Настройки, заданные по умолчанию или в конфигураторе или в режиме предприятия (при создании / изменении варианта отчета в режиме предприятия). Управлять данными настройками пользователь может через работу с вариантом отчета (Изменить вариант, Добавить вариант)
  • ПользовательскиеНастройки – это список настроек из первого пункта, которыми может управлять пользователь. Особенность пользовательских настроек заключается в том, что они не изменяют вариант отчета, а применяются дополнительно («сверху») к ним. Любая пользовательская настройка связана с настройкой в варианте отчета, к которой она применяется. Эта связь с настройкой варианта отчета осуществляется через поле ИдентификаторПользовательскойНастройки. Управлять данными настройками пользователь может из формы отчета – элементы быстрых настроек доступны в форме самого отчета, элементы обычных настроек доступны через кнопку «Настройки» в отдельной форме настроек
  • ФиксированныеНастройки – дополнительные настройки, которые применяются дополнительно к настройками из пункта 1. Управлять этими настройками пользователь не может. Обычно (а может и всегда) это настройки, которые задаются программно – например, при передаче отбора (или других настроек) при запуске отчета с помощью метода ОткрытьФорму.

Пользовательские настройки на форме

Когда вы создаете новый отчет на СКД и добавляете в нем форму, то система 1C спрашивает нужно ли подключить СКД в создаваемую форму:

061419_1200_2.png

Если этот флаг установлен, то у формы создаются 2 реквизита, создается группа для пользовательских настроек, командная панель :

061419_1200_3.png

Результат отчета помещается на форму, в свойствах формы настраивается связь с добавленными реквизитами и элементами:

061419_1200_4.png

При создании формы настроек, которая вызывается из основной формы отчета по кнопке «Настройки» добавляется только элемент – группа пользовательских настроек и также производится настройка соответствующего свойства формы.

Далее в этой группе система будет создавать (по умолчанию в 2 колонки) элементы пользовательских настроек:

Вы можете отключить стандартное создание пользовательских настроек, очистив свойство, отвечающее за группу пользовательских настроек. И затем с помощью метода «СоздатьЭлементыФормыПользовательскихНастроек» создать эти элементы в другой группе. Функция позволяет создать элементы настроек в произвольном количестве колонок. Пример работы можно посмотреть в отчете «ОСВ по счету».

Также вы можете производить любые (почти) настройки элементов пользовательских настроек. Например, установить обработчик изменения, установить доступность и т.п.. Пример можно посмотреть в отчете «Карточка счета» из домашнего задания.

Хранение настроек

Если в вашей конфигурации не используются какие-то специальные инструменты для хранения вариантов отчетов и пользовательских настроек, то такие настройки расположены в хранилище настроек.

По умолчанию настройка вариантов отчетов и пользовательские настройки отчетов хранятся в хранилище системных настроек. И доступны они соответственно через объекты глобального контекста ХранилищеВариантовОтчетов и ХранилищеПользовательскихНастроекОтчетов. В конфигурации можно настроить размещение настроек в отдельных хранилищах:

061419_1200_8.png

Эти же хранилища можно настроить отдельно для каждого отчета:

061419_1200_9.png

С помощью этой обработки можно посмотреть как хранятся настройки:

Хранение настроек для отчетов на СКД может быть также организовано с помощью специальных средств. В типовых конфигурациях 1C для этого применяется подсистема библиотеки стандартных подсистемы (БСП) «Варианты отчетов».

Используемые источники:

  • https://guesto.ru/1c-nevozmozhno-primenit-fiksirovannyye-nastroyki/
  • https://lavelin.ru/knowledgebase/невозможно-применить-фиксированные/
  • https://wiki.programstore.ru/nastrojki-v-skd/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации