Как программно установить параметры выбора для формы выбора объекта
Часто в поле нужно выбирать не любой документ, а только подходящий — например, проведённую реализацию конкретного партнёра. Параметры выбора задают такой отбор со стороны вызывающей формы, а саму форму выбора менять не нужно.
Код установки параметров выбора
Параметры выбора позволяют установить отбор для открываемой формы выбора объекта не изменяя код в самой форме выбора. Например, на форме есть реквизит "ДокументОтгрузки" с типом ДокументСсылка.РеализацияТоваровУслуг. Нам необходимо в этом поле выбрать только тот документ, у которого партнер будет равен какому-то определённому партнеру, и сам документ должен быть проведен. Соответственно, в открываемой форме выбора документов отгрузки должны стоять соответствующие отборы по партнеру и по признаку проведенности документа, но саму форму выбора мы не должны трогать. Для этого, в процедуре ПриСозданииНаСервере в форме, на которой расположено поле "ДокументОтгрузки" прописываем следующий код:
МассивПараметровВыбора = Новый Массив;
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Партнер", ПартнерДляОтбора));
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Проведен", Истина));
НовыеПараметрыВыбора = Новый ФиксированныйМассив(МассивПараметровВыбора);
Элементы.ДокументОтгрузки.ПараметрыВыбора = НовыеПараметрыВыбора;ПартнерДляОтбора - это тот самый партнер, по которому нам необходим отбор в открываемой форме выбора. При каждом изменении ПартнераДляОтбора необходимо заново устанавливать параметры выбора, применив вышеуказанный код.Актуальность для новых версий
Механизм параметров выбора в управляемых формах платформы 8.3 не менялся, код работает в УТ 11.5, ERP 2.5 и любых конфигурациях. Если отбор зависит от другого реквизита формы, можно вместо кода настроить свойство «Связи параметров выбора» — тогда отбор обновляется сам при изменении этого реквизита.
Частые вопросы
Почему ПараметрыВыбора присваиваются через ФиксированныйМассив?
Свойство ПараметрыВыбора принимает только фиксированный массив объектов ПараметрВыбора, поэтому обычный массив нужно преобразовать.
Нужно ли переустанавливать параметры при смене партнёра?
Да, при программной установке значение фиксируется в момент присваивания. Либо используйте «Связи параметров выбора», которые подхватывают изменения автоматически.
Чем ПараметрыВыбора отличаются от отбора в ОткрытьФорму?
Параметры выбора привязаны к полю и применяются при любом способе выбора, включая ввод по строке, а отбор в параметрах ОткрытьФорму действует только для конкретного открытия формы.