Всем добрый день.
ЗУП 3.1(3.1.15.67) Пытаюсь написать доп. обработку для заполнения "Способа отражения" документа "Резервы отпусков". Чтоб пользователь после заполнения документа (кнопка "Заполнить"), нажимал на "Ещё" => "Заполнить способ отражения", и в табличных частях колонка "Способ отражения" заполнялась в соответствии с выбранным значением. У меня по какой-то причине процедура "Выполнить команду" формы модуля, открывает форму выбора, но не дожидается выбора и завершает работу, соответственно в документе ничего не меняется (обработка во вложении).

```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    КомандаОткрытьФормуВыбора();
    КонецПроцедуры

    &НаКлиенте
    Процедура КомандаОткрытьФормуВыбора()

    ПараметрыВыбора = Новый Структура("РежимВыбора",Истина);

    ОткрытьФорму("Справочник.СпособыОтраженияЗарплатыВБухУчете.ФормаВыбора",ПараметрыВыбора, ЭтаФорма);

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

    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    Если ВыбранноеЗначение = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Для каждого Стр Из ВладелецФормы.Объект.ОценочныеОбязательстваПоСотрудникам Цикл
    Стр.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
    КонецЦикла;

    Для каждого Стр Из ВладелецФормы.Объект.ОценочныеОбязательства Цикл
    Стр.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
    КонецЦикла
    КонецПроцедуры
```
---
Так у вас программа и не знает, что там что-то выбрали) Вы просто открыли форму выбора, но никак не получаете выбранное значение.

```1c
    Процедура КомандаОткрытьФормуВыбора()

    ПараметрыВыбора = Новый Структура("РежимВыбора",Истина);

    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаВыбора", ЭтотОбъект);

    ОткрытьФорму("Справочник.СпособыОтраженияЗарплатыВБухУчете.ФормаВыбора",ПараметрыВыбора, ЭтаФорма, , , ,ОповещениеОЗакрытии);

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

Вроде как-то так можно отловить) Не уверен только, что форма выбора при закрытии вернёт параметры как у вас в процедуре обработки выбора, но можете отладкой глянуть
---
Да, спасибо, помогло!
Попутно еще потребовалось сделать процедуру "ОбработкаВыбора" экспортной, иначе ругалась на это.
Итоговый код модуля формы такой:

```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    ПараметрыВыбора = Новый Структура("РежимВыбора",Истина);

    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаВыбора", ЭтотОбъект);

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

    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Экспорт
    Если ВыбранноеЗначение = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Для каждого Стр Из ВладелецФормы.Объект.ОценочныеОбязательстваПоСотрудникам Цикл
    Стр.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
    КонецЦикла;

    Для каждого Стр Из ВладелецФормы.Объект.ОценочныеОбязательства Цикл
    Стр.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
    КонецЦикла;
    КонецПроцедуры
```

Ну и рабочую обработку прицепляю, вдруг кому потребуется.
---
Так у вас программа и не знает, что там что-то выбрали) Вы просто открыли форму выбора, но никак не получаете выбранное значение.

```1c
    Процедура КомандаОткрытьФормуВыбора()

    ПараметрыВыбора = Новый Структура("РежимВыбора",Истина);

    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаВыбора", ЭтотОбъект);

    ОткрытьФорму("Справочник.СпособыОтраженияЗарплатыВБухУчете.ФормаВыбора",ПараметрыВыбора, ЭтаФорма, , , ,ОповещениеОЗакрытии);

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

Вроде как-то так можно отловить) Не уверен только, что форма выбора при закрытии вернёт параметры как у вас в процедуре обработки выбора, но можете отладкой глянуть
---
Да, спасибо, помогло!
Попутно еще потребовалось сделать процедуру "ОбработкаВыбора" экспортной, иначе ругалась на это.
Итоговый код модуля формы такой:

```1c
    &НаКлиенте
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    ПараметрыВыбора = Новый Структура("РежимВыбора",Истина);

    ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработкаВыбора", ЭтотОбъект);

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

    &НаКлиенте
    Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Экспорт
    Если ВыбранноеЗначение = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Для каждого Стр Из ВладелецФормы.Объект.ОценочныеОбязательстваПоСотрудникам Цикл
    Стр.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
    КонецЦикла;

    Для каждого Стр Из ВладелецФормы.Объект.ОценочныеОбязательства Цикл
    Стр.СпособОтраженияЗарплатыВБухучете = ВыбранноеЗначение;
    КонецЦикла;
    КонецПроцедуры
```

Ну и рабочую обработку прицепляю, вдруг кому потребуется.