Преобразование табличного документа в 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; КонецФункции |