Здравствуйте! Подскажите пожалуйста, как в управляемых формах в документе, например, поступление, добавить кнопку, по которой открывалась форма подбора справочника номенклатур, и из нее пользователь делал выбор, а в табличную часть соответственно попадала выбранная номенклатура (и другие необходимые реквизиты).
я разобралась, как это реализовать, но только если пользователь выбирает одну номенклатуру.

```1c
    &НаКлиенте
    Процедура ПоКаталогу(Команда)
    Форма = ПолучитьФорму("Справочник.ХарактеристикиНоменклатуры.ФормаВыбора", ,);
    Результат = Форма.ОткрытьМодально();
    ...
    КонецПроцедуры
```

в результате я получаю всего одну позицию и форма выбора закрывается. А как сделать чтоб по выбору пользователя в табличную часть заполнялась каждая выбранная им позиция?
(И не множественный выбор, а именно юзер выбирает номенклатуру, соответственно в табл. части сразу добавляется строка.)
---
Ну, во-первых, "Форма.ОткрытьМодально()" - это нехорошо. Сейчас в моде ковровые бомбардировки и управляемые баллистические ракеты.
Во-вторых, при выборе в форме, открытой для подбора/выбора, генерится событие, передающееся форме-владельцу.

В итоге что-то такое должно быть:

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

    КонецПроцедуры

    &НаКлиенте
    Процедура ПриЗакрытииФормыПодбора(Рез, Доп) Экспорт
    Сообщить("Ура, форма подбора закрыта!");
    КонецПроцедуры

    // вот эта процедура ниже - это не просто процедура, а обработчик событий, поэтому ее недостаточно просто скопипастить - ее нужно выбрать в соответсвующем событии формы.
    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
    КонецПроцедуры
```
---
Ну, во-первых, "Форма.ОткрытьМодально()" - это нехорошо. Сейчас в моде ковровые бомбардировки и управляемые баллистические ракеты.
Во-вторых, при выборе в форме, открытой для подбора/выбора, генерится событие, передающееся форме-владельцу.

В итоге что-то такое должно быть:

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

    КонецПроцедуры

    &НаКлиенте
    Процедура ПриЗакрытииФормыПодбора(Рез, Доп) Экспорт
    Сообщить("Ура, форма подбора закрыта!");
    КонецПроцедуры

    // вот эта процедура ниже - это не просто процедура, а обработчик событий, поэтому ее недостаточно просто скопипастить - ее нужно выбрать в соответсвующем событии формы.
    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    Объект.ТабличнаяЧасть1.Добавить().ФИО = ВыбранноеЗначение;
    КонецПроцедуры
```
---
ОГРОМНОЕ спасибо!
---
Вообще, для пользователей гораздо удобнее когда форма подбора содержит две таблицы, а не одну. Некоторых вводит в заблуждение - почему они щелкнули по выбираемому элементу а ничего не произошло. То, что выбранный элемент добавился в форму из которой они открыли подбор - не очевидно.
---
ну, они так хотят
---
посмотрите как в типовых это реализовано, там нет ничего сложного