Записывает форматированный документ в файл.
Синтаксис
Записать(<ИмяФайла>, <ТипФайла>)Записать(<Поток>, <ТипФайла>)Полное описание, параметры и ограничения
ФорматированныйДокумент.Записать (FormattedDocument.Write)
ФорматированныйДокумент (FormattedDocument)
Записать (Write)
Доступен, начиная с версии 8.2.
Вариант синтаксиса: В файл
Синтаксис:
Записать(<ИмяФайла>, <ТипФайла>)
Параметры:
<ИмяФайла> (обязательный)
Тип: Строка.
Имя файла, в который будет записан форматированный документ.
<ТипФайла> (необязательный)
Тип: ТипФайлаФорматированногоДокумента.
Указывает тип файла.
Описание варианта метода:
Запись форматированного документа в файл.
Вариант синтаксиса: В поток
Синтаксис:
Записать(<Поток>, <ТипФайла>)
Параметры:
<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи документа.
<ТипФайла> (необязательный)
Тип: ТипФайлаФорматированногоДокумента.
Указывает формат записи документа.
Описание варианта метода:
Запись форматированного документа в поток.
Описание:
Записывает форматированный документ в файл.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
См. также:
ФорматированныйДокумент, метод ЗаписатьАсинх
ФорматированныйДокумент, метод НачатьЗапись
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Записать свой оформленный документ в HTML-поток в памяти
Создаём заголовок и итог, экспортируем документ в собственный поток, не выбирая имя файла и не затрагивая диск.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Отдельная учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт.
Документ создаётся заново в памяти при каждом запуске. Существующие реквизиты, файлы и документы конфигурации не меняются.
Сообщения показывают контрольные проверки. Для визуального просмотра оформления используйте отдельную задачу с полным модулем учебной формы.
Документ = Новый ФорматированныйДокумент;
Заголовок = Документ.Добавить("Учебная покупка");
Заголовок.Шрифт = Новый Шрифт("Arial", 14, Истина);
Документ.Добавить(Неопределено, Тип("ПереводСтрокиФорматированногоДокумента"));
Документ.Добавить("Книга: 3 × 250 = 750 руб.");
Поток = Новый ПотокВПамяти;
Попытка
Документ.Записать(Поток, ТипФайлаФорматированногоДокумента.HTML);
Исключение
Поток.Закрыть();
ВызватьИсключение;
КонецПопытки;
ДанныеHTML = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Сообщить(ДанныеHTML.Размер() > 0);
Сообщить(СтрНайти(Документ.ПолучитьТекст(), "750 руб.") > 0);
HTML = "";
Вложения = Новый Структура;
Документ.ПолучитьHTML(HTML, Вложения);
Сообщить(СтрДлина(HTML) > 0 И Вложения.Количество() = 0);Разбор по шагам
Документ имеет собственный заголовок с жирным шрифтом и собственную строку итога.
Перегрузка Записать с ПотокВПамяти не создаёт файл на диске. Формат HTML задаём явно.
Поток принадлежит коду. При исключении закрываем его, при успехе закрываем с получением ДвоичныеДанные.
Отдельно получаем текстовый HTML и структуру вложений через ПолучитьHTML для сравнения назначения API.
Как проверить результат
Все три сообщения Истина: поток непустой, документ содержит итог, HTML-компоненты непустые и без вложений.
На диске не создаётся учебный отчёт и принтер не вызывается.
Ожидаемый результат
Получены байты HTML-экспорта и отдельно HTML-компоненты документа.
На что обратить внимание
Положительный размер — проверка создания данных, не полная проверка отображения экспортированного HTML в браузере.
ДвоичныеДанные и строка HTML не одно и то же. Не назначайте произвольную кодировку байтам без проверки формата.
Для картинок HTML-компоненты могут требовать вложений; здесь документ намеренно только текстовый.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.