Добрый день!
Есть управляемая форма. С реквизитом составного типа. Нужно сделать так, чтобы если выбираешь определенный тип открывалась форма выбора с отборами. В процедуре РеквизитПриИзменении сначала написала СтандартнаяОбработка = Ложь, настроила отборы. Все работает правильно за исключением того, что открывается 2 формы. Моя с отбором сначала и потом уже та, которая открывалась до доработок.
Как сделать, чтобы открывалась одна форма?
---
В итоге получилось через ОбработкаВыбора

```1c
    &НаКлиенте
    Процедура РеквизитОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если Не ВыбранноеЗначение = Тип("Неопределено") Тогда
    СтандартнаяОбработка = Ложь;
    Если ВыбранноеЗначение = Тип("НужыйТип") Тогда
    Форма = ОткрытьФорму(".Форма.ФормаВыбора", , Элемент);
    Отбор = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.Использование = Истина;
    //настроила отбор
    Иначе
    СтандартнаяОбработка = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
```
---
Процедура НачалоВыбора, нужно сделать свой диалог выбора типа, и далее уже можно открыть форму

```1c
    &НаКлиенте
    Процедура Реквизит1НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    СписокТипов=Новый СписокЗначений;
    СписокТипов.Добавить("Строка");
    СписокТипов.Добавить("Документ.ПоступлениеТоваров");
    СписокТипов.Добавить("Справочник.Номенклатура");
    Оповещение=Новый ОписаниеОповещения("ВыборТипаЗавершение",ЭтаФорма,Элемент);
    СписокТипов.ПоказатьВыборЭлемента(Оповещение);
    КонецПроцедуры

    &НаКлиенте
    Процедура ВыборТипаЗавершение(Результат,ДополнительныеПараметры) ЭКСПОРТ
    Если Результат=Неопределено Тогда
    Возврат;
    КонецЕсли;
    Реквизит1=Неопределено;
    Если СтрНайти(Результат.Значение,".")=0 Тогда
    Реквизит1=";
    Иначе
    ПараметрыФормы=Новый Структура;
    //ПараметрыОтбора=Новый Структура;
    //ПараметрыОтбора.Вставить("Ссылка",НужнаяСсылка);
    //ПараметрыФормы.Вставить("Отбор",ПараметрыОтбора);
    ОткрытьФорму(Результат.Значение+".ФормаВыбора",ПараметрыФормы,ДополнительныеПараметры);
    КонецЕсли;
    КонецПроцедуры
```
---
А при открытии что?...
---
При открытии чего?
---
В процедуре РеквизитПриИзменении
В процедуре при открытии формы.
---
Сейчас я хочу просто чтобы никакая форма не открывалась.
Вот что в коде, но форма все равно открывается. Сначала на выбор типа, потом уже форма выбора того, что выбрали на предыдущем шаге.

```1c
    &НаКлиенте
    Процедура РеквизитПриИзменении(Элемент)
    СтандартнаяОбработка = Ложь;
    КонецПроцедуры
```
---
почему при изменении? А не при начале выбора значения, например?
Выбор типа придется эмулировать вероятно или отменить полностью.
---
В НачалоВыбора нет пока того, что пользователь выбрал, какой тип.
---
А можно все доступные значения всех типов поместить в одну форму на обработку и выбирать из неё?
---
В итоге получилось через ОбработкаВыбора

```1c
    &НаКлиенте
    Процедура РеквизитОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если Не ВыбранноеЗначение = Тип("Неопределено") Тогда
    СтандартнаяОбработка = Ложь;
    Если ВыбранноеЗначение = Тип("НужыйТип") Тогда
    Форма = ОткрытьФорму(".Форма.ФормаВыбора", , Элемент);
    Отбор = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    Отбор.Использование = Истина;
    //настроила отбор
    Иначе
    СтандартнаяОбработка = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
```