Преобразование табличного документа в HTML со ссылками

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

Если в расшифровке ячейки табличного документа указана ссылка на какой-либо объект базы (элемент справочника, документ и т.д.), ссылка в HTML-файле будет открывать этот элемент в базе (если база опубликована), иначе будет открываться строковое представление расшифровки (если это ссылка на какой-либо сайт, будет открываться сайт).

Функция возвращает текст HTML — его можно отправить в HTML-письме — в результате вы получите письмо, из которого можно будет «провалиться» в документ в базе 1С или перейти по ссылке на какой-либо сайт.

Если вам помогла данная функция, или есть предложение по улучшению, пожалуйста, оставьте комментарий)

Функция ПреобразоватьТабличныйДокументВHTML(ТабличныйДокумент) Экспорт																			
 
	ПутьКФайлу = КаталогВременныхФайлов() + "Табличный документ, преобразованный в HTML.html"; //Необходимо указать имя вашего файла 
	ТабличныйДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.HTML);
 
	ЧтениеHTML 		= Новый ЧтениеHTML;
	ЧтениеHTML.ОткрытьФайл(ПутьКФайлу, "UTF-8");
	ПостроительDOM 	= Новый ПостроительDOM;
	ДокументDOM  	= ПостроительDOM.Прочитать(ЧтениеHTML);
	ЭлементыHTML 	= ДокументDOM.ПолучитьЭлементыПоИмени("TD");
 
	Для каждого Элемент из ЭлементыHTML Цикл
		Если ЗначениеЗаполнено(Элемент.ТекстовоеСодержимое) Тогда
			Ячейка 		= ТабличныйДокумент.НайтиТекст(Элемент.ТекстовоеСодержимое, Ячейка,,,Истина);
			Расшифровка = Ячейка.Расшифровка;
			Если ЗначениеЗаполнено(Ячейка) и ЗначениеЗаполнено(Расшифровка) Тогда
				Якорь 						= ДокументDOM.СоздатьЭлемент("a");
				Якорь.Гиперссылка 			= ?(ТипЗнч(Расшифровка) = Тип("Строка"), Расшифровка, ПолучитьНавигационнуюСсылкуИнформационнойБазы() + "#" + ПолучитьНавигационнуюСсылку(Расшифровка)); 
				Якорь.ТекстовоеСодержимое 	= Ячейка.Текст;
				Элемент.ЗаменитьДочерний(Якорь, Элемент.ПервыйДочерний);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
 
	ЧтениеHTML.Закрыть();
	ЗаписьHTML 	= Новый ЗаписьHTML;
	ЗаписьHTML.ОткрытьФайл(ПутьКФайлу, "UTF-8");
	ЗаписьDOM 	= Новый ЗаписьDOM;
	ЗаписьDOM.Записать(ДокументDOM, ЗаписьHTML);
	ЗаписьHTML.Закрыть();
 
	ЧтениеТекста 	= Новый ЧтениеТекста(ПутьКФайлу, "UTF-8");
	HTML 			= ЧтениеТекста.Прочитать();
	ЧтениеТекста.Закрыть();
 
	//Стили {{
	Если ЗначениеЗаполнено(HTML) Тогда
		HTML = "<style>
		|a {
		| text-decoration: none; /* Убираем подчёркивание ссылок */
		|}
		|</style>" + HTML;
	КонецЕсли;
	//Стили }}
 
	Попытка
		УдалитьФайлы(ПутьКФайлу);
	Исключение
	КонецПопытки;
 
	Возврат HTML;
 
КонецФункции
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии