Библиотека функций для решения проблем с HTML в 1С (ХДЖ_РаботаСHTML)

При выполнении в 1С заданий, связанных с отображением HTML, неоднократно сталкивался со странным поведением платформы, в результате которого HTML отображается не корректно (либо вообще не функционирует).

Один из примеров таких проблем описан в разделе "Редактирование областей карты (интеграция 1С с JS)" статьи "Поиск точек на карте".
Тогда у меня была статическая (в плане структуры) страница HTML. И используемый в ней js-файл, тоже был у меня. Так что я просто вручную вставил текст этого js-файла в тэг <script> внутри страницы и все прекрасно заработало.

Недавно же я столкнулся с более сложной ситуацией.
У одного из моих заказчиков модуль обмена с "Новой почтой" (Нова пошта) напрочь отказывался печатать ТТН. Причем, если у заказчика на платформе версии 8.3.10 ТТН вообще не отображалась (скорее всего из-за проблем с использованием js-файлов), то у меня на 8.3.15 она отображалась, но все элементы были расположены в столбик (т.е. очевидно, что к странице не применялись подключаемые css-файлы).
Сложность ситуации заключалась в том, что и сама страница получалась в ответ на HTTP-закрос к API Новой почты (т.е. формировалась динамически, еще и не нашим кодом), и используемые в ней css-файлы стилей и js-файлы скриптов тоже находились не у нас в руках. И вставлять было особо нечего, и главное - некуда.

Я нашел способ разрешить и эту ситуацию, и оформил его в виде библиотеки функций.

Суть способа заключается в том, что полученный от Новой почты HTML-документ обрабатывается на предмет замены в нем:

В результате получилось достаточно универсальное решение, которое берет любой текст HTML, и заменяет в нем проблемные тэги на содержимое подключаемых этими тэгами файлов, после чего, данная страница прекрасно отображается и работает в 1С-ном поле HTML-документа.
Причем, библиотека умеет заменять как файлы, пути к которым указаны с использоавнием тэга <base> (как в случае с ТТН Новой почты), так и файлы, пути к которым указаны абсолютным адресом.

Это первая версия данной библиотеки.

Она предоставляет одну единственную экспортную процедуру:

Библиотека реализована в виде расширения ХДЖ_РаботаСHTML (назначение = Дополнение), которое предоставляет один единственный общий модуль ХДЖ_ХТМЛ_ОбработкаHTMLКлиентСервер.
На случай, если у кого-нибудь возникнут проблемы с расширением, то также отдельно прикладываю сам текст модуля. Его нужно положить в общий модуль со следующим расположением:

Подробное описание реализуемых библиотекой методов можно получить в комментариях перед этими методами.

Ну и пару слов о лицензии. Вы можете пользоваться этой библиотекой в любых благих целях, и при этом ничего мне не должны. С другой стороны, и ответственности за прямой или косвенный ущерб, а также за то, что предоставляемая функциональность не соответствует Вашим ожиданиям, я не несу. Вы используете данную библиотеку (как и другие мои продукты) на свой страх и риск.

Файлы для скачивания

Библиотека версии 1.0.00.001:

Файл расширения (формата 8.3.15.1656) (9 КБ)
Текст модуля (15 КБ)