|
История выбора при вводе - Как отфильтровать? |
☑ |
0
constantinevio
07.12.15
✎
12:32
|
Итак, есть форма создания документа, на ней поле выбора из справочника. В этом справочнике часть значений принадлежит к "основной группе" а часть - нет (определяется по реквизиту типа булево). Так вот, в зависимости от одного из реквизитов формы нужно, чтобы в форме выбора и самое главное - в истории при быстром выборе (маленькое выпадающее окошко, где написано нажать F4 для просмотра всего списка) был отбор, и отображалась либо одна группа значений справочника, любо другая.
Форму выбора справочника я смог отфильтровать так:
П = Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("ПренадлежитКОсновнойГруппе", Ложь);
П.Вставить("Отбор", Отбор);
ОткрытьФорму("Справочник.ПредприятияКлиенты.ФормаВыбора", П);
Однако, в истории (окошко быстрого выбора) все равно либо лезет все подряд, либо она отключается полностью...
Существует ли какой-нибудь способ отфильтровать список истории выбранных значений и при этом не лезть на сервер большим запросом, и если да, то как?
|
|
1
Steini
07.12.15
✎
13:05
|
В интернетах сто раз обсуждалось. Главный вопрос был от программистов разработчикам, ну вот как можно было сделать такую ерунду ненастраиваемой. На что был ответ, мол, так это ж такая крутая фича, ну кому в голову придет отключать её!??!?!
Начиная то ли с 8.3.6 у поля элемента добавили флажок, мол, неиспользовать историю. Но он все равно работает в 50% случаев)
|
|
2
Steini
07.12.15
✎
13:13
|
Короче, отфильтровать нельзя, можно только отключить. Отключаться должно так:
ПолеИнициаторПроцесса.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
Но не всегда работает, разбираться нет времени, тем более на упр. формах платформа писана на костылях.
Поэтому можно использовать целый зоопарк настроек:
ПолеИнициаторПроцесса.КнопкаВыпадающегоСписка = Ложь;
ПолеИнициаторПроцесса.КнопкаВыбора = Истина;
ПолеИнициаторПроцесса.КнопкаОчистки = Ложь;
ПолеИнициаторПроцесса.КнопкаОткрытия = Ложь;
ПолеИнициаторПроцесса.РедактированиеТекста = Ложь;
ПолеИнициаторПроцесса.КнопкаСоздания = Ложь;
ПолеИнициаторПроцесса.ОтображениеКнопкиВыбора = ОтображениеКнопкиВыбора.ОтображатьВПолеВвода;
ПолеИнициаторПроцесса.АвтоВыборНезаполненного = Ложь;
ПолеИнициаторПроцесса.БыстрыйВыбор = Ложь;
ПолеИнициаторПроцесса.КнопкаСпискаВыбора = Ложь;
ПолеИнициаторПроцесса.ИсторияВыбораПриВводе = ИсторияВыбораПриВводе.НеИспользовать;
ПолеИнициаторПроцесса.СписокВыбора.Очистить();
Самое действенное - последняя строка.
|
|
3
constantinevio
07.12.15
✎
13:13
|
Весь интернет перерыл... Нигде ничего внятного не нашел... ..т.е. никак?
|
|
4
constantinevio
07.12.15
✎
13:15
|
Ясно... Печально. Спасибо за ответ!
|
|
5
Steini
07.12.15
✎
13:16
|
+ тот же самый вопрос, но только про фильтрацию с использованием RLS, видел на партнерском форуме. На что ихенный разработчик честно ответил, что такой филтр к выпадающей истории применит абсолютно никак нельзя, и, по-видимому, не получится в будущих версиях платформы. типо отключайте этот список.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший