Конкретный собственный источник, штатный обработчик / вызов и явные ограничения.
Где и как запускать
Своя управляемая форма, тонкий / толстый / веб-клиент. Команда ПолучитьСвоиТексты, основной асинхронный обработчик и дополнительная серверная функция в том же модуле.
Подготовка
Своя управляемая форма, тонкий / толстый / веб-клиент. Команда ПолучитьСвоиТексты, основной асинхронный обработчик и дополнительная серверная функция в том же модуле.
Сервер создаёт только два собственных байтовых текста Book: 3 и Book: 5 в памяти и помещает во временное хранилище, привязанное к УникальныйИдентификатор формы. Исходные файлы пользователя не копируются.
При ручном запуске откроется диалог получения; сохраняйте только в свою учебную папку. Это пример выгрузки собственных данных, не резервная копия справочника. Имя ZIP уникально; не соглашайтесь на перезапись посторонних файлов.
&НаКлиенте
Асинх Процедура ПолучитьСвоиТексты(Команда)
Файлы = СвоиДваТекстаДляПолучения();
Архив = Новый ПараметрыПолученияАрхиваФайлов;
Архив.ИмяАрхива = "guide-books-" + Строка(Новый УникальныйИдентификатор) + ".zip";
Архив.Режим = РежимПолученияАрхиваФайлов.ПолучатьАрхивВсегда;
Диалог = Новый ПараметрыДиалогаПолученияФайлов;
Ждать ПолучитьФайлыССервераАсинх(Файлы, Диалог, Архив);
Сообщить("Запрос получения двух своих текстов передан клиенту");
КонецПроцедурыТа же форма, сервер: два настоящих своих текста и адреса временного хранения
&НаСервере
Функция СвоиДваТекстаДляПолучения()
Файлы = Новый Массив;
Данные = Base64Значение("Qm9vazogMw==");
Адрес = ПоместитьВоВременноеХранилище(Данные, УникальныйИдентификатор);
Файлы.Добавить(Новый ОписаниеПередаваемогоФайла("guide-book-a.txt", Адрес));
Данные = Base64Значение("Qm9vazogNQ==");
Адрес = ПоместитьВоВременноеХранилище(Данные, УникальныйИдентификатор);
Файлы.Добавить(Новый ОписаниеПередаваемогоФайла("guide-book-b.txt", Адрес));
Возврат Файлы;
КонецФункцииРазбор по шагам
Подготовьте собственную форму по описанию.
Назначьте обработчики и выполните только свой учебный опыт.
Проверьте фактический результат с учётом ограничений клиента.
Как проверить результат
ПолучатьАрхивВсегда требует упаковку; ПолучатьАрхивПриНеобходимости оставляет решение клиенту / условиям получения. Нельзя обещать ZIP в любом клиенте при втором варианте.
Используется именно вариант с объектом ПараметрыДиалогаПолученияФайлов вторым аргументом. В веб-клиенте обещание может завершиться до диалога, поэтому сообщение не объявляет файлы уже сохранёнными.
Ожидаемый результат
Есть полный собственный сценарий без универсального getter-шаблона.
На что обратить внимание
Код 1С, переносы, загрузки и файловые операции при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.