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

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

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

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

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


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


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

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

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

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