ФорматированныйДокумент.Записать

Методы · Write

Записывает форматированный документ в файл.

Синтаксис

Записать(<ИмяФайла>, <ТипФайла>)
Записать(<Поток>, <ТипФайла>)
Полное описание, параметры и ограничения

ФорматированныйДокумент.Записать (FormattedDocument.Write)

ФорматированныйДокумент (FormattedDocument)

Записать (Write)

Доступен, начиная с версии 8.2.

Вариант синтаксиса: В файл

Синтаксис:
Записать(<ИмяФайла>, <ТипФайла>)
Параметры:

<ИмяФайла> (обязательный)
Тип: Строка.
Имя файла, в который будет записан форматированный документ.

<ТипФайла> (необязательный)
Тип: ТипФайлаФорматированногоДокумента.
Указывает тип файла.
Описание варианта метода:
Запись форматированного документа в файл.
Вариант синтаксиса: В поток

Синтаксис:
Записать(<Поток>, <ТипФайла>)
Параметры:

<Поток> (обязательный)
Тип: Поток, ПотокВПамяти, ФайловыйПоток.
Поток для записи документа.

<ТипФайла> (необязательный)
Тип: ТипФайлаФорматированногоДокумента.
Указывает формат записи документа.
Описание варианта метода:
Запись форматированного документа в поток.
Описание:

Записывает форматированный документ в файл.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

См. также:
ФорматированныйДокумент, метод ЗаписатьАсинх
ФорматированныйДокумент, метод НачатьЗапись

Использование в версии:

Доступен, начиная с версии 8.2.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Записать свой оформленный документ в HTML-поток в памяти

Создаём заголовок и итог, экспортируем документ в собственный поток, не выбирая имя файла и не затрагивая диск.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Отдельная учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт.

  2. Документ создаётся заново в памяти при каждом запуске. Существующие реквизиты, файлы и документы конфигурации не меняются.

  3. Сообщения показывают контрольные проверки. Для визуального просмотра оформления используйте отдельную задачу с полным модулем учебной формы.

Документ = Новый ФорматированныйДокумент;
Заголовок = Документ.Добавить("Учебная покупка");
Заголовок.Шрифт = Новый Шрифт("Arial", 14, Истина);
Документ.Добавить(Неопределено, Тип("ПереводСтрокиФорматированногоДокумента"));
Документ.Добавить("Книга: 3 × 250 = 750 руб.");
Поток = Новый ПотокВПамяти;
Попытка
    Документ.Записать(Поток, ТипФайлаФорматированногоДокумента.HTML);
Исключение
    Поток.Закрыть();
    ВызватьИсключение;
КонецПопытки;
ДанныеHTML = Поток.ЗакрытьИПолучитьДвоичныеДанные();
Сообщить(ДанныеHTML.Размер() > 0);
Сообщить(СтрНайти(Документ.ПолучитьТекст(), "750 руб.") > 0);
HTML = "";
Вложения = Новый Структура;
Документ.ПолучитьHTML(HTML, Вложения);
Сообщить(СтрДлина(HTML) > 0 И Вложения.Количество() = 0);

Разбор по шагам

  1. Документ имеет собственный заголовок с жирным шрифтом и собственную строку итога.

  2. Перегрузка Записать с ПотокВПамяти не создаёт файл на диске. Формат HTML задаём явно.

  3. Поток принадлежит коду. При исключении закрываем его, при успехе закрываем с получением ДвоичныеДанные.

  4. Отдельно получаем текстовый HTML и структуру вложений через ПолучитьHTML для сравнения назначения API.

Как проверить результат

  1. Все три сообщения Истина: поток непустой, документ содержит итог, HTML-компоненты непустые и без вложений.

  2. На диске не создаётся учебный отчёт и принтер не вызывается.

Ожидаемый результат

Получены байты HTML-экспорта и отдельно HTML-компоненты документа.

На что обратить внимание

  1. Положительный размер — проверка создания данных, не полная проверка отображения экспортированного HTML в браузере.

  2. ДвоичныеДанные и строка HTML не одно и то же. Не назначайте произвольную кодировку байтам без проверки формата.

  3. Для картинок HTML-компоненты могут требовать вложений; здесь документ намеренно только текстовый.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.