Читал и форум, и методические рекомендации, но так до конца и не вкурил процесс. И похоже туплю на элементарных вещах.

Есть процедура выполнения команды на клиенте. Команда по большому счету занимается заполнением табличной части документа из внешнего XML-файла. Соответственно, мне нужно этот файл передать на сервер.

Использую метод
```1c
    НачатьПомещениеФайла(Новый ОписаниеОповещения("ВыполнитьЗагрузку", ЭтаФорма), АдресВХранилище, ДиалогВыбора, Истина, УникальныйИдентификатор)
```
, но адрес моего файла во временном хранилище я получаю только внутри процедуры-обработчика оповещения ВыполнитьЗагрузку. Далее подразумевается, что я из этого обработчика напрямую вызову уже серверную функцию, которой передам адрес, и в ней смогу получить исходный файл из временного хранилища.

А если я хочу этот адрес получить в изначальной процедуре выполнения команды? Я надеялся, что обработчик его по ссылке запишет в изначально пустую переменную АдресВХранилище, но нет, она после отработки метода так и остается пустой.

Ну или хорошо, я из обработчика вызову серверную функцию, получу в ней новое временное имя файла, но как мне дальше это имя опять-таки передать в изначальную процедуру выполнения команды, чтобы дальше потом опять на сервер передать уже в функцию, работающую с ИБ?

Т.е. у меня процедура-обработчик вызывается неявно (асинхронно), и я не понимаю, как из нее получить результат на уровне, где НачатьПомещениеФайла вызывалось.
---
В общем, пока что сделал так: вызов основной обрабатывающей файл и ТЧ серверной функции перенес из стартовой процедуры (Команда) в обработчик окончания помещения, чтобы оттуда ей Адрес в хранилище передать. А недостающие ей для работы другие данные передаю в тот же обработчик из стартовой процедуры через ДополнительныеПараметры.
---
берем и копипастим Работа с файлами (обычная и управляемая форма)
---
Я видел вашу статью. Она, несомненно, полезна, но в моем случае крайне избыточна. Мне в итоге хватило примера из встроенной справки - (2). :)
---
ну вы задали вопрос как это работает. Там есть обработка, которая показывает "КАК"!
---
Вот пример из справки:

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

    НачатьПомещениеФайла(ОбработкаОкончанияПомещения, , , Истина,
    ЭтотОбъект.УникальныйИдентификатор);
    КонецПроцедуры

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

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