|
Как бороться с фиксированными настройками в формах списков?
программистище, Chai Nic, Bigbro, kostik79, John D, U4Me2, arccos6pi, Доминошник, TormozIT, maxar, Hawk_1c, nick86, dergreche, Шурик71, Gucci76, toypaul, Михаил Козлов, Fragster, Ёпрст, Волшебник, Мультук, RoRu, Prog_man, RVN, Гипервизор, okmail, maxab72, Лирик, СвинТуз, Alex33, pasha_d, Crusher, Ager, Хряк, Александр111, Злопчинский, Web00001, АгентБезопаснойНацио, igor_caplin, vis, calmius, mikecool, H A D G E H O G s
| ☑ |
0
Chai Nic
17.04.25
✎
11:29
|
Есть БП3.
Задача - во всех формах списков документов наложить отбор на организацию по определенному условию, зависящему от настроек пользователя. Делаю через расширение. Нашел трассировкой процедуру ОтборыСписков.СброситьИспользованиеПользовательскихОтборовВНастройке(ПользовательскиеНастройки), перехватываю её в расширении, после её основного действия ставлю отбор в пользовательских настройках. Всё вроде бы работает. Формы открываются со включенным отбором.
Но наткнулись на проблему при выборе значения "Исполнительный лист" из платежного поручения или списания с расчетного счета. При открытии выдается ошибка "Невозможно применить фиксированные настройки. Пересекаются элементы отбора." и выдается пустой список. Если отключить добавление отбора в пользовательские настройки, то ошибки нет и всё работает.
В коде нигде явно не заполняются эти "фиксированные настройки" - проверял, трассировал. Похоже, что это платформенная фича какая-то, когда форма списка открывается в режиме выбора с передачей отбора в параметрах. Смотрел отладчиком, в Форма.Параметры.Отбор оказывается отбор по организации в том числе. Наверное, он и попадает в "Фиксированные настройки". Но где он заполняется, вот вопрос?
Кто в курсе, как в типовых БСПшных конфигурациях это происходит?
|
|
1
toypaul
гуру
17.04.25
✎
11:30
|
Там и заполняется. Не передавай в отбор и все будет работать
|
|
2
Chai Nic
17.04.25
✎
11:31
|
(1) Там это где? На форме платежного поручения обычное поле ввода, никаких ОбработкаВыбора, связанных с ним, там нет. В том и вопрос.
|
|
3
Ёпрст
17.04.25
✎
12:30
|
(2) в связи параметров выбора стоит ЭТО:
Отбор.Получатель(Контрагент), Отбор.Организация(Организация), Отбор.ФизическоеЛицо(Сотрудник)
|
|
4
Ёпрст
17.04.25
✎
12:30
|
у этого реквизита, смотри свойства в дереве матаданных.
|
|
5
Fragster
гуру
17.04.25
✎
12:38
|
(0) никак, только менять фиксированные настройки. но тогда пользователь не сможет отбирать по организации. 1су не раз писали про это на партнерском, что разные настройки должны работать по "И", но они забили на это. Хотя и в типовых подобное поведение безо всяких расширений можно поймать со связью параметров выбора
|
|
6
Fragster
гуру
17.04.25
✎
12:39
|
еще можно подменять текст запроса динамического списка, добавляя отбор через параметр и устанавливать этот самый параметр - но это сильно больше букв.
чисто теоретически можно сделать rls, но оно может вылезти боком в неожиданных местах
|
|
7
Chai Nic
17.04.25
✎
14:47
|
(5) Да я вообще не понимаю, почему при наличии фиксированных настроек запрещено применять пользовательские на те же поля. Где логика?
В общем, нашел обходной способ. Переопределил в расширении ПодключаемыеКоманды.ПриСозданииНаСервере, сделал там удаление организации из Форма.Параметры.Отбор, с последующим переносом этого отбора в обычные пользовательские настройки. Вроде работает.
|
|
8
программистище
17.04.25
✎
15:03
|
используй функции бсп
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(ДинамическийСписок, ИмяПоля, ПравоеЗначение, ВидСравнения, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший