Сохранение форматированного документа в 1С — это процесс сохранения текста с различными стилями, шрифтами, цветами и другими элементами форматирования. Способ сохранения зависит от того, как именно вы хотите сохранить документ (например, в файл, в базу данных, для печати).
Общий принцип:
Использование объекта “ФорматированныйДокумент”. Формирование форматированного документа (добавление текста, стилей и т. д.). Сохранение документа в нужном формате.
Способы сохранения форматированного документа в 1С:
Сохранение в файл (форматы. mxl, .htm, .txt, .pdf, .odt):
- Сохранение в файл. mxl (формат 1С): Это самый простой и надежный способ, который позволяет сохранить все элементы форматирования.
O Процедура СохранитьФорматированныйДокументВФайл(ФормДок, ИмяФайла) Экспорт
O
O ФормДок. Записать(ИмяФайла);
O
O КонецПроцедуры
O
O // Пример использования:
O // ФормДок = Новый ФорматированныйДокумент;
O // // … формирование форматированного документа
O // ИмяФайла = "C:\MyDocument. mxl";
O // СохранитьФорматированныйДокументВФайл(ФормДок, ИмяФайла);
- Сохранение в файл. htm (HTML): Позволяет сохранить документ в формате HTML, который можно открыть в браузере. Однако, не все элементы форматирования могут быть корректно отображены в HTML.
O Процедура СохранитьФорматированныйДокументВHTML(ФормДок, ИмяФайла) Экспорт
O
O ФормДок. Показать(ИмяФайла, "HTML");
O
O КонецПроцедуры
O
O // Пример использования:
O // ФормДок = Новый ФорматированныйДокумент;
O // // … формирование форматированного документа
O // ИмяФайла = "C:\MyDocument. htm";
O // СохранитьФорматированныйДокументВHTML(ФормДок, ИмяФайла);
- Сохранение в файл. txt (текстовый файл): Самый простой формат, который сохраняет только текст без форматирования.
· Процедура СохранитьФорматированныйДокументВТекст(ФормДок, ИмяФайла) Экспорт
·
· Текст = Новый ТекстовыйДокумент;
· Текст. ДобавитьСтроку(ФормДок. Текст);
· Текст. Записать(ИмяФайла, КодировкаТекста. UTF8);
·
· КонецПроцедуры
·
· // Пример использования:
· // ФормДок = Новый ФорматированныйДокумент;
· // // … формирование форматированного документа
· // ИмяФайла = "C:\MyDocument. txt";
· // СохранитьФорматированныйДокументВТекст(ФормДок, ИмяФайла);
- Сохранение в файл. pdf (Portable Document Format): Позволяет сохранить документ в формате PDF, который обеспечивает сохранение форматирования и удобен для просмотра и печати. Для сохранения в PDF требуется установленный на компьютере PDF-принтер (виртуальный или реальный).
· Процедура СохранитьФорматированныйДокументВPDF(ФормДок, ИмяФайла) Экспорт
·
· ФормДок. Показать(ИмяФайла, "PDF");
·
· КонецПроцедуры
·
· // Пример использования:
· // ФормДок = Новый ФорматированныйДокумент;
· // // … формирование форматированного документа
· // ИмяФайла = "C:\MyDocument. pdf";
· // СохранитьФорматированныйДокументВPDF(ФормДок, ИмяФайла);
* **Сохранение в файл .odt (Open Document Text):** Формат OpenDocument, используемый LibreOffice и OpenOffice.
«`bsl
Процедура СохранитьФорматированныйДокументВОDT(ФормДок, ИмяФайла) Экспорт
ФормДок. Показать(ИмяФайла, "ODT");
КонецПроцедуры
// Пример использования:
// ФормДок = Новый ФорматированныйДокумент;
// // … формирование форматированного документа
// ИмяФайла = "C:\MyDocument. odt";
// СохранитьФорматированныйДокументВОDT(ФормДок, ИмяФайла);
«`
* **Важно:** При использовании методов `Показать()` для сохранения в HTML, PDF и ODT 1С фактически отправляет документ на печать, но перехватывает результат и сохраняет его в файл. Поэтому *необходимо, чтобы на компьютере был установлен PDF-принтер (для сохранения в PDF) или программа, поддерживающая формат ODT (для сохранения в ODT).*
Сохранение в базу данных (в реквизит объекта):
- Вы можете сохранить форматированный документ в реквизит объекта (например, справочника или документа) для дальнейшего использования. Создайте реквизит типа “Хранилище значения” для хранения форматированного документа.
O Процедура СохранитьФорматированныйДокументВБазу(ФормДок, Объект, ИмяРеквизита) Экспорт
O
O Объект[ИмяРеквизита] = Новый ХранилищеЗначения(ФормДок);
O Объект. Записать();
O
O КонецПроцедуры
O
O // Пример использования:
O // ФормДок = Новый ФорматированныйДокумент;
O // // … формирование форматированного документа
O // СохранитьФорматированныйДокументВБазу(ФормДок, ЭтотОбъект, "ТекстДокумента");
- Для извлечения форматированного документа из базы данных:
O Процедура ПолучитьФорматированныйДокументИзБазы(Объект, ИмяРеквизита, ФормДок) Экспорт
O
O Если Объект[ИмяРеквизита] <> Неопределено Тогда
O Хранилище = Объект[ИмяРеквизита].Получить();
O ФормДок = Хранилище;
O КонецЕсли;
O
O КонецПроцедуры
Сохранение для печати (формирование печатной формы):
- Этот способ используется для формирования печатных форм документов, которые можно распечатать или сохранить в файл. Создайте макет печатной формы (в конфигураторе). Используйте объект “ТабличныйДокумент” для формирования печатной формы. Выведите табличный документ на печать или сохраните в файл (например, в формате MS Excel, PDF, HTML). Этот способ сложнее, чем использование “ФорматированногоДокумента”, но он предоставляет больше возможностей для управления внешним видом документа.
Пример формирования форматированного документа (простой):
ФормДок = Новый ФорматированныйДокумент;
// Устанавливаем шрифт
Шрифт = Новый Шрифт(,,,,,Истина);
//Создание абзаца
Абзац = Новый ПараметрыФорматированияТекста;
Абзац. Шрифт = Шрифт;
Абзац. ВысотаШрифта = 14;
//Текст
Текст = "Пример форматированного текста";
ФормДок. ДобавитьТекст(Текст, Абзац);
// Сохранение в файл .mxl
ИмяФайла = "C:\MyDocument. mxl";
ФормДок. Записать(ИмяФайла);
Сообщить("Документ сохранен в файл: " + ИмяФайла);
Важные моменты:
- ФорматированныйДокумент vs. ТабличныйДокумент: “ФорматированныйДокумент” предназначен для работы с текстом и простым форматированием. “ТабличныйДокумент” предназначен для создания сложных печатных форм с таблицами, графиками и другими элементами. Кодировка: При сохранении в текстовый файл важно указывать правильную кодировку (например, UTF-8), чтобы избежать проблем с отображением символов. Установленный PDF-принтер: Для сохранения в PDF необходимо, чтобы на компьютере был установлен PDF-принтер. Права доступа: Убедитесь, что у пользователя есть права на запись в указанную папку. Освобождение ресурсов: После сохранения документа необходимо освобождать ресурсы, чтобы избежать утечек памяти.
Рекомендации:
- Используйте “ФорматированныйДокумент” для работы с текстом и простым форматированием. Используйте “ТабличныйДокумент” для создания сложных печатных форм. Тщательно тестируйте код сохранения документов, чтобы убедиться, что все работает правильно.
Для более конкретного совета, укажите, пожалуйста, в каком формате вы хотите сохранить документ и для какой цели он предназначен (например, для печати, для отправки по электронной почте, для хранения в базе данных).