Динамический список отбор пользовательских настроек на форме

1. Kovekh 12.10.21 09:30 Сейчас в теме
Как говорится, здрасьте.

Имеется платформа 8.3.18.1334, остальное не так уж важно будет.
Создана форма, на неё помещен динамический список (имя ему в реквизитах формы - "Список"). Список работает, данные имеет, здесь всё как надо.
На форму так же помещается отбор настроек компоновщика настроек. Именно отбор настроек - не фиксированных настроек, не пользовательских настроек. Так как отбор пользовательских настроек пока не догнал как вынести на форму. А отбор фиксированных настроек используется в другом месте для жёсткого ограничения и потому его нельзя показывать ни в коем случае.

Отбор работает, всё отлично. Проблема начинается дальше(
У списка на форме есть такое свойство, как "Группа пользовательских настроек". Туда самостоятельно платформенно закидываются отборы из нашей таблички отборов на форме. Отлично добавляются, отлично изменяются.

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


Есть какие-то мысли, как подхватить изменение пользовательских настроек не в таблице, а в этой группе пользовательских настроек? Процедура списка "ПриОбновленииСоставаПользовательскихНастроекНаСервере" не отрабатывает(
Вытащить обычный отбор не вариант, потому что, во-первых, отображает фиксированные настройки, а во-вторых, не помещает в эту группу пользовательских настроек новые отборы.


Во вложениях небольшие скрины.
По порядку (не нашёлся как в текст встроить эти вложения):
1 - отбор на форме в конфигураторе;
2 - Группа для пользовательских настроек (сразу под таблицей настроек)
3 - как выглядит форма под пользователем с открытыми настройками
4 - добавили отбор по автору, включили его в пользовательские настройки, он появился в группе пользовательских настроек сам
5 - изменили отбор в пользовательских настройках, но он не изменился в отборе в таблице (что и нужно сделать)
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Drivingblind 227 12.10.21 12:10 Сейчас в теме
Попробовал события динамического списка, которые хотя бы немного подходили для этого по смыслу: ПриСохраненииПользовательскихНастроекНаСервере, ПередЗагрузкойПользовательскихНастроекНаСервере, ПриЗагрузкеПользовательскихНастроекНаСервере, ПриОбновленииСоставаПользовательскихНастроекНаСервере, ОбработкаЗапросаОбновления. Ни одно не срабатывает при изменении пользовательских настроек. Наверное, стоит попробовать самый примитивный путь -- подключить обработчик ожидания ("ПодключитьОбработчикОжидания"), каждый раз перебирать условия на клиенте (чтобы не нагружать сервер и сеть) и каким-то образом обрабатывать пересекающиеся условия.
3. Kovekh 12.10.21 12:16 Сейчас в теме
(2) Что самое прикольное, эмпирическим путём было выяснено, что настройки меняются в первой степени от этих пользовательских настроек. Просто в табличке настроек они не меняются в случае изменения в пользовательских
4. Drivingblind 227 12.10.21 12:32 Сейчас в теме
(3) Если мне не изменяет память, из компоновщика настроек можно получить сумму всех настроек (в т.ч. пользовательских и фиксированных) с помощью функции ПолучитьНастройки() и там уже посмотреть, что и как дублируется.
5. Kovekh 12.10.21 12:33 Сейчас в теме
(4) Да можно. Но, блин, обработчиком ожидания каждый раз это проглядывать... Это же дичайший вариант, который будет всё тормозить(
6. ixijixi 1761 12.10.21 15:32 Сейчас в теме
Надо добавить на форму не КомпоновщикНастроек.Отбор, а КомпоновщикНастроек.ПользовательскиеНастройки.Отбор, тогда эти два элемента будут синхронизироваться.

Нюанс в том, что без элемента КомпоновщикНастроек.ПользовательскиеНастройки не добавить на форму КомпоновщикНастроек.ПользовательскиеНастройки.Отбор, т.к. он привязан к данным Элементы.КомпоновщикНастроекПользовательскиеНастройки.ТекущиеДанные.Отбор. Поэтому добавляешь оба элемента, ПользовательскиеНастройки делаешь видимость = Ложь, но программно нужно активировать строку табличного поля ПользовательскиеНастройки с идентификатором Отбор.

Набросал в обработку основное, с видимость только сам реши.
Основная таблица дин. списка - Справочник.ВидыОтпусков
Прикрепленные файлы:
ВнешняяОбработка1.epf
Drivingblind; 0x00; +2 Ответить
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Программист 1С:ERP
Москва
зарплата от 100 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день