Форматирование текста в ячейке (области) табличного документа.

1. Геннадьевич 18 30.03.21 08:06 Сейчас в теме
Доброго дня.
Есть документ в УТ 11 "Коммерческое предложение клиенту". В документе есть реквизит "ДополнительнаяИнформацияКлиентуHTML". В реквизите хранится форматированная строка HTML.

Как информацию из этого реквизита вставить в печатную форму? Желательно с сохранением форматирования, но можно и без него, на крайний случай.

Может эта тема уже поднималась? Не могу найти ничего похожего.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. andy_zhav 197 30.03.21 09:35 Сейчас в теме
(1) С форматированием вытащить просто не получится.

Просто текст можно вытащить функцией БСП:

РаботаС_HTML.ПолучитьПростойТекстИзHTML(Знач ТекстHTML, Знач Кодировка = Неопределено)


Код функции на всякий случай:
// Получает текстовое содержимое ДокументаHTML.
//
Функция ПолучитьПростойТекстИзHTML(Знач ТекстHTML, Знач Кодировка = Неопределено) Экспорт
	
	ТекстHTML = СтрЗаменить(ТекстHTML, "</o:p>", "</o:p>" + Символы.ПС);
	ТекстHTML = СтрЗаменить(ТекстHTML, "</o:p>" + Символы.ПС + Символы.ПС, "</o:p>" + Символы.ПС);
	ТекстHTML = СтрЗаменить(ТекстHTML, "</p>", "</p>" + Символы.ПС);
	ТекстHTML = СтрЗаменить(ТекстHTML, "</p>" + Символы.ПС + Символы.ПС, "</p>" + Символы.ПС);
	ТекстHTML = СтрЗаменить(ТекстHTML, "</div>", "</div>" + Символы.ПС);
	ТекстHTML = СтрЗаменить(ТекстHTML, "</div>" + Символы.ПС + Символы.ПС, "</div>" + Символы.ПС);
	ТекстHTML = СтрЗаменить(ТекстHTML, "", Символы.ПС + Символы.ПС);
	
	Построитель = Новый ПостроительDOM;
	ЧтениеHTML = Новый ЧтениеHTML;
	Если ЗначениеЗаполнено(Кодировка) Тогда
		Попытка
			ЧтениеHTML.УстановитьСтроку(ТекстHTML, Кодировка);
		Исключение	
			ЧтениеHTML.УстановитьСтроку(ТекстHTML); // кодировка могла быть некорректная - ставим без кодировки
		КонецПопытки;	
	Иначе
		ЧтениеHTML.УстановитьСтроку(ТекстHTML);
	КонецЕсли;
	
	ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
	
	Если ДокументHTML.Тело = Неопределено Тогда
		Возврат "";
	КонецЕсли;
	
	Возврат ДокументHTML.Тело.ТекстовоеСодержимое;
	
КонецФункции
Показать


Ну или можно попробовать

Функция ПолучитьТекстИзHTML(Знач ТекстHTML, Знач Кодировка = Неопределено, Знач ВыделятьСсылки = Истина) Экспорт


более продвинутая
Геннадьевич; +1 Ответить
3. Геннадьевич 18 30.03.21 11:27 Сейчас в теме
Понятно, буду пробовать.
Может быть можно соединить 2 макета? Табличный документ и HTML?
4. Геннадьевич 18 30.03.21 11:55 Сейчас в теме
Пока добавил реализацию вывода обычного текста через функцию:
Функция ПолучитьПростойТекстИзHTML(ТекстHTML)
	
	Построитель = Новый ПостроительDOM;
	ЧтениеHTML = Новый ЧтениеHTML;
	ЧтениеHTML.УстановитьСтроку(ТекстHTML);
	ДокументHTML = Построитель.Прочитать(ЧтениеHTML);
	
	Возврат ДокументHTML.Тело.ТекстовоеСодержимое;
	
КонецФункции
Показать

Если кто знает как вставить форматированный текст - пишите.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот