Доброго дня!
Конфигурация : Бухгалтерия 2.0
Документ : Требование накладная
Написана внешняя обработка табличной части, при нажатии на кнопку "Заполнить", и выборе внешней обработки, происходит открытие журнала Авансовых отчетов, там выбирается документ и при клике на этот документ строки из Авансового отчета - переносятся в Требование накладную, НО при этом закрывается журнал авансовых отчетов, и соответсвенно что бы добавить строки из дугового Авансового отчета, нужно снова тыкать в кнопку Заполнить выбирать обработку и так по кругу.
Вопрос : как доделать внешнюю обработку что бы при двойном клике по документу строки переносились в требование накладную но журнал не закрывался и можно было сразу добавить из другого документа ?

Собственно в моей обработке только одна процедура :

```1c
    Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
    //////////////////////////////////////
    ФормаВыбора = Документы.АвансовыйОтчет.ПолучитьФормуВыбора();
    ФормаВыбора.РежимВыбора = Истина;
    Значение = ФормаВыбора.ОткрытьМодально();
    Если Значение <> Неопределено Тогда

    ///////////////////////////////////
    //Объект[ИмяТабличнойЧасти].Очистить();
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | АвансовыйОтчетТовары.Номенклатура,
    | АвансовыйОтчетТовары.СчетУчета,
    | АвансовыйОтчетТовары.Количество,
    | АвансовыйОтчетТовары.ОтражениеВУСН
    |ИЗ
    | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
    |ГДЕ
    | АвансовыйОтчетТовары.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка", Значение);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    СтрокаТабличнойЧасти = Объект.Материалы.Добавить(); // табличная часть МАТЕРИАЛЫ
    СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
    СтрокаТабличнойЧасти.Количество = Выборка.Количество;
    СтрокаТабличнойЧасти.Счет = Выборка.СчетУчета;
    СтрокаТабличнойЧасти.ОтражениеВУСН = Выборка.ОтражениеВУСН;
    КонецЦикла;
    ////////////////////////////////////////////////////////////­/////////
    КонецЕсли;
    КонецПроцедуры
```
---
Сделал вот так :

```1c
    Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
    //////////////////////////////////////
    ФормаВыбора = Документы.АвансовыйОтчет.ПолучитьФормуВыбора();
    ФормаВыбора.МножественныйВыбор = Истина;
    Значение = ФормаВыбора.ОткрытьМодально();
    Если Значение <> Неопределено Тогда

    ТекстВопроса = "Очистить табличную часть перед заполнением ?";
    Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
    Если Ответ <> КодВозвратаДиалога.Да Тогда
    //Возврат;
    Иначе
    Объект.Материалы.Очистить();
    КонецЕсли;

    Если ТипЗнч(Значение) = Тип("Массив") Тогда
    //Здесь тот же запрос, но условие меняется на "АвансовыйОтчетТовары.Ссылка В (&Ссылка)"
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | АвансовыйОтчетТовары.Номенклатура,
    | АвансовыйОтчетТовары.СчетУчета,
    | АвансовыйОтчетТовары.Количество,
    | АвансовыйОтчетТовары.ОтражениеВУСН
    |ИЗ
    | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
    |ГДЕ
    | АвансовыйОтчетТовары.Ссылка В (&Ссылка)";
    Иначе
    //Здесь тот запрос, который у вас сейчас
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | АвансовыйОтчетТовары.Номенклатура,
    | АвансовыйОтчетТовары.СчетУчета,
    | АвансовыйОтчетТовары.Количество,
    | АвансовыйОтчетТовары.ОтражениеВУСН
    |ИЗ
    | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
    |ГДЕ
    | АвансовыйОтчетТовары.Ссылка = &Ссылка";
    КонецЕсли;

    Запрос.УстановитьПараметр("Ссылка", Значение);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    СтрокаТабличнойЧасти = Объект.Материалы.Добавить(); // табличная часть МАТЕРИАЛЫ
    СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
    СтрокаТабличнойЧасти.Количество = Выборка.Количество;
    СтрокаТабличнойЧасти.Счет = Выборка.СчетУчета;
    СтрокаТабличнойЧасти.ОтражениеВУСН = Выборка.ОтражениеВУСН;
    КонецЦикла;
    ////////////////////////////////////////////////////////////­/////////
    КонецЕсли;
    КонецПроцедуры
```
---
```1c
    Форма.ЗакрыватьПриВыборе = Ложь;
```

Но это не поможет, т.к. используется модальный режим,
Как вариант добавить во внешнюю обработку ТЧ свою форму и при открытии вызывать диалог выбора, и через обработчик ОбработкаВыбора заполнять ТЧ, через процедуру модуля обработки

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

```1c
    Если ТипЗнч(Значение) = Тип("Массив") Тогда
    //Здесь тот же запрос, но условие меняется на "АвансовыйОтчетТовары.Ссылка В (&Ссылка)"
    Иначе
    //Здесь тот запрос, который у вас сейчас
    КонецЕсли
```
---
Сделал вот так :

```1c
    Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПоле) Экспорт;
    //////////////////////////////////////
    ФормаВыбора = Документы.АвансовыйОтчет.ПолучитьФормуВыбора();
    ФормаВыбора.МножественныйВыбор = Истина;
    Значение = ФормаВыбора.ОткрытьМодально();
    Если Значение <> Неопределено Тогда

    ТекстВопроса = "Очистить табличную часть перед заполнением ?";
    Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
    Если Ответ <> КодВозвратаДиалога.Да Тогда
    //Возврат;
    Иначе
    Объект.Материалы.Очистить();
    КонецЕсли;

    Если ТипЗнч(Значение) = Тип("Массив") Тогда
    //Здесь тот же запрос, но условие меняется на "АвансовыйОтчетТовары.Ссылка В (&Ссылка)"
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | АвансовыйОтчетТовары.Номенклатура,
    | АвансовыйОтчетТовары.СчетУчета,
    | АвансовыйОтчетТовары.Количество,
    | АвансовыйОтчетТовары.ОтражениеВУСН
    |ИЗ
    | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
    |ГДЕ
    | АвансовыйОтчетТовары.Ссылка В (&Ссылка)";
    Иначе
    //Здесь тот запрос, который у вас сейчас
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | АвансовыйОтчетТовары.Номенклатура,
    | АвансовыйОтчетТовары.СчетУчета,
    | АвансовыйОтчетТовары.Количество,
    | АвансовыйОтчетТовары.ОтражениеВУСН
    |ИЗ
    | Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
    |ГДЕ
    | АвансовыйОтчетТовары.Ссылка = &Ссылка";
    КонецЕсли;

    Запрос.УстановитьПараметр("Ссылка", Значение);
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    СтрокаТабличнойЧасти = Объект.Материалы.Добавить(); // табличная часть МАТЕРИАЛЫ
    СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
    СтрокаТабличнойЧасти.Количество = Выборка.Количество;
    СтрокаТабличнойЧасти.Счет = Выборка.СчетУчета;
    СтрокаТабличнойЧасти.ОтражениеВУСН = Выборка.ОтражениеВУСН;
    КонецЦикла;
    ////////////////////////////////////////////////////////////­/////////
    КонецЕсли;
    КонецПроцедуры
```