Преобразование табличного документа в 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 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии