Обработчик ожидает запись в собственный поток и проверяет полученные данные. Результат обещания не трактуем как универсальное подтверждение сохранения файла.
Где и как запускать
Модуль пустой управляемой формы учебной внешней обработки; тонкий или толстый клиент Windows. Вставьте весь модуль. Это не серверный код.
Подготовка
Создайте учебную внешнюю обработку с пустой управляемой основной формой. Создайте команду УчебныйПример и кнопку этой команды.
В свойстве команды Действие выберите процедуру УчебныйПример. Вставьте полный приведённый модуль формы.
Откройте EPF в тонком или толстом клиенте Windows и нажмите кнопку. Не переносите Ждать и Асинх в серверный общий модуль.
Пример работает только со своими данными в памяти; записи в базу, файлы и сеть нет.
&НаКлиенте
Асинх Процедура УчебныйПример(Команда)
Документ = Новый ФорматированныйДокумент;
Документ.Добавить("Учебная памятка: Книга, сумма 750 руб.");
Поток = Новый ПотокВПамяти;
Попытка
Ждать Документ.ЗаписатьАсинх(Поток, ТипФайлаФорматированногоДокумента.HTML);
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
Данные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Сообщить(Данные.Размер() > 0);
Сообщить(СтрНайти(Документ.ПолучитьТекст(), "750 руб.") > 0);
КонецПроцедурыРазбор по шагам
Полный клиентский Асинх обработчик создаёт свои документ и поток при каждом запуске.
Ждать гарантирует завершение операции перед закрытием потока.
Не сравниваем результат обещания с Истина, чтобы не выдавать его за безусловное доказательство сохранения файла во всех средах.
В данном сценарии нет браузерного скачивания: проверяем размер результата именно своего ПотокВПамяти.
Как проверить результат
Оба сравнения Истина; получены ненулевые байты экспорта и сохранён исходный итог.
Путь к файлу не запрашивается; рабочие файлы и база не меняются.
Ожидаемый результат
Завершён клиентский асинхронный экспорт в память с проверкой собственного результата.
На что обратить внимание
У ЗаписатьАсинх есть также файловая перегрузка. Для браузерного скачивания результат может быть Истина/Ложь/Неопределено по способу получения файла.
Этот пример не доказывает, что пользователь скачал файл: сохранения на диск вообще нет.
Асинх и Ждать используются на клиенте; серверную задачу выполняйте синхронным методом.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.