Решение задач 1С:Предприятие 8 на примерах

Как программно установить параметры выбора для формы выбора объекта

Управляемые формыОпубликовано Обновлено

Часто в поле нужно выбирать не любой документ, а только подходящий — например, проведённую реализацию конкретного партнёра. Параметры выбора задают такой отбор со стороны вызывающей формы, а саму форму выбора менять не нужно.

Код установки параметров выбора

Параметры выбора позволяют установить отбор для открываемой формы выбора объекта не изменяя код в самой форме выбора. Например, на форме есть реквизит "ДокументОтгрузки" с типом ДокументСсылка.РеализацияТоваровУслуг. Нам необходимо в этом поле выбрать только тот документ, у которого партнер будет равен какому-то определённому партнеру, и сам документ должен быть проведен. Соответственно, в открываемой форме выбора документов отгрузки должны стоять соответствующие отборы по партнеру и по признаку проведенности документа, но саму форму выбора мы не должны трогать. Для этого, в процедуре ПриСозданииНаСервере в форме, на которой расположено поле "ДокументОтгрузки" прописываем следующий код:

МассивПараметровВыбора = Новый Массив;
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Партнер", ПартнерДляОтбора));
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.Проведен", Истина));
НовыеПараметрыВыбора =  Новый ФиксированныйМассив(МассивПараметровВыбора);
Элементы.ДокументОтгрузки.ПараметрыВыбора = НовыеПараметрыВыбора;
ПартнерДляОтбора - это тот самый партнер, по которому нам необходим отбор в открываемой форме выбора. При каждом изменении ПартнераДляОтбора необходимо заново устанавливать параметры выбора, применив вышеуказанный код.

Актуальность для новых версий

Механизм параметров выбора в управляемых формах платформы 8.3 не менялся, код работает в УТ 11.5, ERP 2.5 и любых конфигурациях. Если отбор зависит от другого реквизита формы, можно вместо кода настроить свойство «Связи параметров выбора» — тогда отбор обновляется сам при изменении этого реквизита.

Частые вопросы

Почему ПараметрыВыбора присваиваются через ФиксированныйМассив?

Свойство ПараметрыВыбора принимает только фиксированный массив объектов ПараметрВыбора, поэтому обычный массив нужно преобразовать.

Нужно ли переустанавливать параметры при смене партнёра?

Да, при программной установке значение фиксируется в момент присваивания. Либо используйте «Связи параметров выбора», которые подхватывают изменения автоматически.

Чем ПараметрыВыбора отличаются от отбора в ОткрытьФорму?

Параметры выбора привязаны к полю и применяются при любом способе выбора, включая ввод по строке, а отбор в параметрах ОткрытьФорму действует только для конкретного открытия формы.

Элементы формы 1С: программное добавление на управляемую форму

Управляемые формы

Практический разбор работы с элементами управляемой формы 1С из кода: добавление реквизитов, полей, групп, кнопок и команд, подключение обработчиков и управление видимостью.

Как открыть форму в управляемом приложении 1С и обработать результат после закрытия

Управляемые формы

Шесть типовых сценариев открытия управляемой формы в 1С: новый объект, создание на основании, существующий документ, форма выбора и получение результата после закрытия через ОписаниеОповещения.

Условное оформление элементов формы программным способом

Управляемые формы

Шесть примеров программного условного оформления в управляемой форме 1С: цвет поля по значению, сравнение двух реквизитов, оформление строк динамического списка и условие по текущей дате.

Как запретить редактирование всех элементов формы, кроме некоторых

Управляемые формы

Свойство ТолькоПросмотр блокирует всю форму целиком. Приводим рекурсивную процедуру, которая запрещает редактирование всех элементов управляемой формы, оставляя доступными только нужные.