Версия для печати темы (http://pro1c.org.ua/index.php?s=5e1decbebe26b0cbb20f84f7b4f69c1d&showtopic=46184)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Как получить html из табличного документа

Автор: jdcodorg 11.06.18, 10:02

Добрый день!

Результаты отчета находятся в табличном документе. Отчет мне надо получить в виде HTML-кода.

Я делаю вариант с сохранением из табличного документа в HTML-файл, а потом считываю файл.

ТабличныйДокумент.Записать(путь к файлу,Перечисления.ВидыТекстовЭлектронныхПисем.HTML);
Блокнот = новый ЧтениеТекста(путь к файлу, КодировкаТекста.UTF8);


Хотелось бы узнать - можно ли обойтись без манипуляций с файлом?

Спасибо.

Автор: Vofka 11.06.18, 10:14

Цитата(jdcodorg @ 11.06.18, 11:02) *
можно ли обойтись без манипуляций с файлом?

Как конвертировать готовый табличный документ в html без промежуточного файла - я не знаю. Можно разве что описать функцию, которая будет формировать готовый html код в виде строки.

Автор: Petre 11.06.18, 10:26

jdcodorg @ Today, 10:02 * ,
Что вас смущает?

Автор: jdcodorg 11.06.18, 10:38

Цитата(Vofka @ 11.06.18, 11:14) *
Как конвертировать готовый табличный документ в html без промежуточного файла - я не знаю. Можно разве что описать функцию, которая будет формировать готовый html код в виде строки.

Жаль

Цитата(Petre @ 11.06.18, 11:26) *
Что вас смущает?


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

Автор: Petre 11.06.18, 11:46

jdcodorg @ Today, 10:38 * ,
Если вместо последовательного доступа к тексту использовать текстовый документ и все это делать на не ниже 8.3.10, то можно избавиться от файлового ввода-вывода (см. в сп вариант с использованием потока).

Автор: jdcodorg 11.06.18, 12:40

Цитата(Petre @ 11.06.18, 12:46) *
Если вместо последовательного доступа к тексту использовать текстовый документ и все это делать на не ниже 8.3.10, то можно избавиться от файлового ввода-вывода (см. в сп вариант с использованием потока).

Объект ТекстовыйДокумент откуда будет читать?

Попробовал так:
    Поток = новый ПотокВПамяти();    
    ТабличныйДокумент.Записать(Поток,Перечисления.ВидыТекстовЭлектронныхПисем.HTML);

Ругается на второй параметр

Автор: Petre 11.06.18, 13:28

QUOTE (jdcodorg @ 11.06.18, 12:40) *
Ругается на второй параметр

Насколько нецензурно?

Что это? Какое еще перечисление?
Перечисления.ВидыТекстовЭлектронныхПисем.HTML

QUOTE
<ТипФайлаТаблицы> (необязательный)

Тип: ТипФайлаТабличногоДокумента.
Формат, в котором будет сохранен табличный документ.
Значение по умолчанию: MXL.

Автор: jdcodorg 11.06.18, 14:13

Цитата(Petre @ 11.06.18, 14:28) *
Что это? Какое еще перечисление?

ТипФайлаТабличногоДокумента.HTML5 - ругается.

Не вижу инструментов для получения HTML из табличного документа, кроме как сохранить его в файл.

Суть операции в том, чтобы созданный отчёт поместить в тело документа "Электронное письмо" (УТП 1.2), сохранив форматирование.
Вложение файла не подходит.
Я сохраняю в HTML-файл, читаю его и полученный текст полностью вставляю в поле документа "ТекстПисьма".

Думал, что есть способы обойтись без файлов, например
ТабличныйДокумент.Записать
не в файл, а в поток, а уже из него вставить в тело письма.
Может есть какие-либо "Препроцессоры..." или "компоновщики..."

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
http://pro1c.org.ua