1с фиксированные настройки динамического списка
(13) Читаем умные книжки:
" если пользователь должен иметь возможность создавать отбор по полю, участвующему в фиксированных настройках списка, нужно удалить отбор из коллекции фиксированных настроек (КомпоновщикНастроек.ФиксированныеНастройки.Отбор) и добавить этот отбор в коллекцию основных настроек списка (КомпоновщикНастроек.Настройки.Отбор)"
(14) компоновщик тут причём ?
Тип(Список.Параметры) == ЗначенияПараметровДанныхКомпоновкиДанных
Использование:
Только чтение.
Описание:
Тип: ЗначенияПараметровДанныхКомпоновкиДанных.
Содержит значения параметров запроса, если в запросе используются параметры.
Тонкий клиент, веб-клиент, сервер, толстый клиент.
(17) На демо базе воспроизводится?
(18) Настройки списка (те которые отборы и т.п.) - это настройки компоновки данных
1. именно у одного юзера такого возникло по непонятным причинам
2. согласен, только это КоллекцияЗначенийПараметровКомпоновкиДанных
(20) Речь о пересечении фиксированных настроек и каких-то других (настроек в варианте, т.е. просто настроек или пользовательских).
Обычно пользовательских - собственно пользователь при этом.
Ни каких "программных" настроек в компоновке нет.
(22)
1. Что бы понять в чем проблема - нужны пользовательские настройки (этого списка от этого пользователя)
2. Что бы локально решить проблему - можно просто сбросить настройки у этого пользователя
3. Свойство Параметры списка отображается напрямую в фиксированные настройки компоновщика настроек (от этого же списка)
(23) Очередная цитата из умной книжки:
Следует различать три вида настроек динамического списка:
Пользовательские настройки загружаются из системного хранилища и накладываются на настройки, сделанные в конфигураторе. В случае пересечения этих настроек пользовательские настройки имеют больший приоритет, то есть «затирают» настройки конфигуратора.
Затем к полученным настройкам применяются фиксированные настройки. Но в случае пересечения этих настроек будет выдаваться ошибка. Например, при открытии формы списка с отбором (в нашем случае по полю Мастер) этот отбор помещается в фиксированные настройки. Поэтому пользователь уже не сможет установить отбор списка по тому же полю
(27) См. в сторону
ХранилищеСистемныхНастроек
Как формируется ключ вроде на ИТС написано, но самое простое - посмотреть все от этого пользователя - дальше глазами выделить нужную (там человеко-читаемые строки)
Объект динамический список содержит в себе следующие отборы:
- Список.Отбор
- Список.КомпоновщикНастроек.Настройки.Отбор
- Список.КомпоновщикНастроек.ПользовательскиеНастройки.Отбор
- Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор
- Зачем столько отборов?
- Какой надо использовать?
- Как передать значения отборов при открытии формы?
Зачем столько отборов?
Первое о чем хочется сказать, это:
Список.Отбор = Список.КомпоновщикНастроек.ФиксированныеНастройки.Отбор
Т.е. если вы добавите отбор например вот так:
то фактически увидите примененный отбор и в Список.Отбор.
Таким образом можно говорить о том, что управление отборами в динамическом списке выполняется только через компоновщик настроек. Далее можно рассматривать только три вида отборов:
- Настройки.Отбор
- ПользовательскиеНастройки.Отбор
- ФиксированныеНастройки.Отбор
Рассмотрим их особенности и порядок применения отборов.
ФиксированныеНастройки.Отбор
Это настройки, которые недоступны пользователю для редактирования средствами платформы.
Управление фиксированными настройками выполняется программно в соответствии с логикой прикладного решения.
Пример кода, для открытия формы с условием на "Равно" или "В списке":
Произвольные фиксированные настройки можно передавать в форму списка:
Настройки.Отбор
Это настройки по умолчанию, они же доступны из конфигуратора в конструкторе формы.
Данные настройки будут применяться если пользователь нажмет "Еще - Установить стандартные настройки".
Способа передать эти настройки в форму через параметры не нашел.
ПользовательскиеНастройки.Отбор
Это настройки, которые доступны для редактирования пользователю через "Еще - Настройки списка . " на закладке отбор.
Передавать эти настройки в общем случае нельзя, но если очень хочется то можно:
Примечание: ГУИД в данном случае является магическим числом без которого не работает и которого нет в документации.
Какие есть особенности в использовании отборов?
"Особенности", как известно - это место где дьявол скрывается в мелочах.
1. Пользовательские и фиксированные установки нельзя устанавливать на одно и то же поле.
Причина этого ограничения мне не понятна, возможно было бы меньше проблем если бы отборы фиксированных и пользовательских настроек объединялись через "И", но имеем что имеем:
Если пользователь установил отбор по тому же реквизиту, который используется в фиксированных настройках, то будет отображена ошибка:
Данная ошибка может быть неожиданной для пользователя, т.к. настройки он мог сделать в форме выбора тогда когда она была открыта без фиксированных настроек, а ошибку получит тогда, когда откроет форму с фиксированными настройками.
- Передавать фиксированный отбор вместе с пустым отбором в пользовательских настройках с ГУИДом "dfcece9d-5077-440b-b6b3-45a5cb4538eb".
- Научить пользователя отключать лишние отборы в случае появления данной ошибки.
2. Элементы пользовательского отбора имеют настройки.
Данные настройки определяют на какой закладке будет отображаться элемент пользовательской настройки.
Режим редактирования "Быстрый доступ" включает отображение данного отбора в группе пользовательских настроек.
Пользователь это видит вот так:
а в конфигураторе вот так:
3. Отбор пользовательских настроек это элемент коллекции "ПользовательскиеНастройки.Элементы".
В результате вывести на форму отбор пользовательских настроек можно только если на форме уже есть таблица "ПользовательскиеНастройки". Редактировать отбор можно только если элемент "ПользовательскиеНастроки" имеет включенную видимость и текущей строкой в нем является отбор. Возможным решением задачи "предоставить возможность редактирования пользовательских отборов прямо на форме списка" может быть:
- Создать на форме страницы без заголовка (так что бы пользователь не мог переключаться между страницами)
- Вывести на первую страницу таблицу с отборами.
- Вывести на вторую страницу таблицу с пользовательскими настроками.
- Программно установить в таблице пользовательских настроек в качестве текущей строки строку с отборами.
Вот вроде бы и все. Во вложении обработка в которой выведены на форму все отборы.
Обработка и приведенных выше код проверялись на платформе версии 8.3.20, но должны работать и на более младших версиях.
В статье будут рассмотрены варианты установки отбора в управляемых формах 1С 8.3. Отбор для динамического списка может быть установлен статически или динамически, в пользовательском интерфейсе или конфигураторе. Все варианты отборов мы рассмотрим ниже.
- Установка отбора в пользовательском режиме
- Установка отбора в конфигураторе
- Фиксированный отбор
- Динамический (программный) отбор
Установка отбора в пользовательском режиме
Динамический список в отличие от таблицы или дерева значений – более подходящее решение для реализации форм содержащих какие-либо списки, т.к. динамический список предоставляет наиболее широкий набор инструментов для работы с отбором, группировкой полей, сортировкой. Данный отбор можно установить при работе в пользовательском режиме или конфигураторе, принцип одинаков.
Для установки отбора в режиме предприятия необходимо вызвать команду «Настроить список».
Рис.1 Настроить список
Рис.2 Окно настройки
На вкладке «отбор» представлен список полей, который есть в текущем списке. Выбираем поля списка, по которым будем фильтровать. Сделать это можно двойным кликом или используя drag and drop.
Рис.3 На вкладке «Отбор»
Задаем вид сравнения и значение, жмем «Завершить редактирование», отбор установлен.
Отбор также можно группировать по логическим условиям «И», «ИЛИ».
Рис.4 Отбор также можно группировать по логическим условиям «И», «ИЛИ»
При установке отбора в режиме предприятия на форме списка автоматически создаются поля так называемых быстрых отборов.
Рис.5 Поля быстрых отборов
Чтобы платформа 1С автоматически создавала поля быстрых отборов, при разработке формы в конфигураторе необходимо указать группу пользовательских настроек.
Рис.6 Группа пользовательских настроек
Данный отбор будет сохранен только для текущего пользователя, что позволяет гибко производить кастомизированные настройки динамического списка. Однако если стоит задача сделать фиксированный отбор для определенного списка для всех пользователей системы, ее мы сможем решить только через конфигуратор.
Установка отбора в конфигураторе
Работая в конфигураторе, мы можем устанавливать отбор динамического списка двух видов – фиксированный и динамический. Фиксированный отбор настраивается один раз, динамический или программный – можно устанавливать в зависимости от каких-либо данных в системе.
Фиксированный отбор
Принцип установки фиксированного отбора в конфигураторе не отличается от установки в пользовательском режиме описанном выше. Чтобы установить отбор, мы должны открыть настройки динамического списка.
Рис.7 Фиксированный отбор
Рис.8 Окно динамического списка
Отбор задается так же, как в пользовательском режиме.
Опция «Включать в пользовательские настройки» определяет, будет ли установленный в конфигураторе отбор доступен в пользовательском режиме через пункт меню «Настроить список».
Рис.9 Настроить список
Динамический (программный) отбор
Зачастую возникает необходимость устанавливать отбор программно, например, при открытии формы выбора, когда нам необходимо открыть управляемую форму с отбором. В форму передается параметр и по этому параметру устанавливается отбор. Частый пример этого – отбор элементов справочника по владельцу.
Методы
Если в разрабатываемой конфигурации присутствует подсистема БСП «БазоваяФункциональность», программный отбор в динамическом списке можно установить используя типовой метод:
Сигнатура данного метода:
ДинамическийСписок Тип: ДинамическийСписок – Список, в котором требуется установить отбор.
ИмяПоля Тип: Строка – Поле, по которому необходимо установить отбор.
ПравоеЗначение Тип: Произвольный – Значение отбора (Необязательный. Значение по умолчанию: Неопределено. Внимание! Если передать Неопределено, то значение не будет изменено).
ВидСравнения Тип: ВидСравненияКомпоновкиДанных – Условие отбора.
Представление Тип: Строка – Представление элемента компоновки данных (Необязательный. Значение по умолчанию: Неопределено. Если указано, то выводится только флажок использования с указанным представлением (значение не выводится). Для очистки, чтобы значение снова выводилось, следует передать пустую строку).
Использование Тип: Булево – Флажок использования этого отбора (Необязательный. Значение по умолчанию: Неопределено).
РежимОтображения Тип: РежимОтображенияЭлементаНастройкиКомпоновкиДанных – Способ отображения этого отбора пользователю. Возможные значения:
- РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ – В группе быстрых настроек над списком.
- РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный – В настройка списка (в подменю Еще).
- РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный – Запретить пользователю менять этот отбор.
ИдентификаторПользовательскойНастройки Тип: Строка – Уникальный идентификатор этого отбора (Используется для связи с пользовательскими настройками).
Для удаления какого-то значения отбора необходимо воспользоваться типовым методом:
Сигнатура данного метода:
ДинамическийСписок Тип: ДинамическийСписок – реквизит формы, для которого требуется установить отбор.
ИмяПоля Тип: Строка – имя поля компоновки (не используется для групп).
Представление Тип: Строка – представление поля компоновки.
В случае отсутствие в системе БСП отбор можно установить самостоятельно, используя объект ПолеКомпоновкиДанных.
Данный отбор отберет строки, в которых значение «ФИО» = «Иванов».
Для использования логических «И», «ИЛИ», «НЕ» предназначен тип данных ГруппаЭлементовОтбораКомпоновкиДанных
Данный отбор отберет строки, в которых значение «ФИО» = «Иванов» или «Петров».
Отбор в динамическом списке также можно производить через изменение текста запроса динамического списка. Этот вариант работает, когда динамический список сделан через «произвольный запрос».
Рис.10 Отбор в динамическом списке
Для этого к тексту запроса добавляем условие «ГДЕ Истина»…
Рис.11 Условие «ГДЕ Истина»
Как видно, такой подход более компактный с точки зрения написания кода. Чем сложнее условия отбора в табличной части мы хотим установить, тем более громоздким будет вариант с использованием отбора через ЭлементОтбораКомпоновкиДанных. Однако у примера с изменением текста запроса есть свои недостатки – эта реализация не устойчива к изменениям кода. Например, вы сделали такую реализацию и забыли, но если в будущем вы захотите модифицировать текст запроса, добавив в него какой-либо оператор после ГДЕ (УПОРЯДОЧИТЬ, СГРУППИРОВАТЬ), вам нужно не забыть про то, что в программном коде есть:
Если этого не учесть будет ошибка, но чтобы этого избежать, можно переделать на другую реализацию. В текс запроса добавляем такое условие:
ГДЕ (НЕ &ОтборУстановлен ИЛИ СправочникПользователи.ФИО В (&РазрешенныеФИО))
Тут ФИО – массив.
Ка видно, 2 строчки кода против 10. Какой из способов выбрать, зависит от конкретной прикладной задачи.
В некоторых релизах конфигураций на управляемом приложении на платформе 1С: Предприятие 8.3 можно получить следующую ошибку:
Текст по кнопочке “Подробно”:
Параметры Отбора, Сортировки, Группировки или список отображаемых полей заданы неверно. по причине: Невозможно применить фиксированные настройки. Пересекаются элементы отбора.
Воспроизведение ошибки
Причина
Причина в использовании новой технологии в еще не подготовленной конфигурации, а именно свойство динамического списка “АвтоматическоеСохранениеПользовательскихНастроек”.
Два варианта решения данной проблемы:
1. Необходимо очистить сохраненные настройки пользователя. Пример для УТ 11.1: Переходим в меню “Администрирование – Настройки пользователей и прав – Очистка настроек” в появившейся форме выбираем пользователя(ей) и чистим. Такой вариант даст разовый результат, если пользователь снова поставит отбор, то получим такую же ошибку.
2. В форме списка или выбора элемента необходимо зайти в свойства динамического списка и свойству “АвтоматическоеСохранениеПользовательскихНастроек” установить значение “Ложь”.
Такой вариант решения можно считать временным, до момента обновления на релиз конфигурации с исправленной ошибкой.
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц rphost занимает память и грузит процессор 19
У многих возникают проблемы с rphost.exe, разного вида: rphost занимает всю память rphost грузит процессор rphost жрет память причем 1С даже на запущена, а в диспетчере следующее: ежеминутно расчет на 2-3 мегабайта. Как быть и что делат Автоматическая архивация баз 1С с использованием Cobian Backup и VBS скриптов 8
Клиент попросил настроить автоматическую архивацию баз 1С раз в три дня и выгрузку архивов на Dropbox и на FTP Сервер. Кроме 1С нужно архивировать папку с рабочими документами. Хочет - так хочет, делаем: Первым делом настроим автоматическую архивац Посмотреть все результаты поиска похожихЕще в этой же категории
В некоторых релизах конфигураций на управляемом приложении на платформе 1С: Предприятие 8.3 можно получить следующую ошибку:
Текст по кнопочке “Подробно”:
Параметры Отбора, Сортировки, Группировки или список отображаемых полей заданы неверно. по причине: Невозможно применить фиксированные настройки. Пересекаются элементы отбора.
Воспроизведение ошибки
Причина
Причина в использовании новой технологии в еще не подготовленной конфигурации, а именно свойство динамического списка “АвтоматическоеСохранениеПользовательскихНастроек”.
Два варианта решения данной проблемы:
1. Необходимо очистить сохраненные настройки пользователя. Пример для УТ 11.1: Переходим в меню “Администрирование – Настройки пользователей и прав – Очистка настроек” в появившейся форме выбираем пользователя(ей) и чистим. Такой вариант даст разовый результат, если пользователь снова поставит отбор, то получим такую же ошибку.
2. В форме списка или выбора элемента необходимо зайти в свойства динамического списка и свойству “АвтоматическоеСохранениеПользовательскихНастроек” установить значение “Ложь”.
Такой вариант решения можно считать временным, до момента обновления на релиз конфигурации с исправленной ошибкой.
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 44
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ COM-соединение не обнаружило свободной лицензии / ключ защиты 0
Иногда при подключении к 1С возникает ошибка: COM-соединение не обнаружило свободной лицензии! COM-соединение не обнаружило ключ защиты программы! https://helpf.pro/uploads/img/_1-UsuyAg6E2P.jpg В таких случаях, иногда, может помочь следующий с Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Excel файл как Внешний источник данных 16
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто. 1. В конфигурации добавляет новый объект метаданных типа " Внешние источники данных" и назовем его просто " Excel" . https://helpf.pro/uploads/img PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожихЕще в этой же категории
Читайте также: