html представление виджета взято из ДО и переделано
// Возвращает html представление виджета.
//
// Параметры:
// Заголовок - Строка - html текст заголовка виджета.
// Подвал - Строка - html текст подвала виджета.
// ТелоВиджета - Строка - html текст тела виджета.
// ФонаВиджета - Строка - цвет фона виджета в виде шестнадцатеричного значения.
// ЦветРамкиТаблицы - Строка - цвет рамок таблиц в виджете, в виде шестнадцатеричного значения.
//
// Возвращаемое значение:
// Строка - html представление виджета.
//
Функция HTMLПредставлениеВиджета(
Заголовок = "", Подвал = "", ТелоВиджета, ФонаВиджета, ЦветРамкиТаблицы)
HTMLТекст = "<html><head><meta name=""viewport"" content=""viewport-fit=cover, width=device-width"" />"
+ СтильHTML(ЦветРамкиТаблицы)
+ "<body bgcolor=" + ФонаВиджета + ">";
HTMLТекст = HTMLТекст + СтрЗаменить("
|<table class=""one"">
|<tr><td>
|<table class=""title"">
|<tr>
|<td class=""menu"">
|</td>
|<td class=""title"">
|<p>
|" + Заголовок + "
|</td>
|</tr>
|</table>
|</td></tr>
|<tr class=""height100""><td>
|" + ТелоВиджета + "
|</td></tr>
|<tr><td>
|<table>
|<tr>
|<td width=""5"">
|</td>
|<td height=""18"">
|" + Подвал + "
|</td>
|</tr>
|</table>
|</td></tr>
|</table>
|</body></html>", "|","");
УдалитьВредоносныйКодИзТекста(HTMLТекст);
Возврат HTMLТекст;
КонецФункции
// Удаляет вредоносный код html из текста.
//
// Параметры:
// Текст - Строка - текст
//
Процедура УдалитьВредоносныйКодИзТекста(Текст) Экспорт
НРегТекст = НРег(Текст);
МассивСтрокБезВредоносногоТекста = Новый Массив;
// Удаление скриптов
НомерСкрипта = 1;
ПозицияНачалаОбработки = 1;
Пока Истина Цикл
ПозицияНачалаОткрывающегоТегаScript = СтрНайти(НРегТекст, "<script",,, НомерСкрипта);
ПозицияНачалаЗакрывающегоТегаScript = СтрНайти(НРегТекст, "</script",,, НомерСкрипта);
Если ПозицияНачалаОткрывающегоТегаScript = 0 Или ПозицияНачалаЗакрывающегоТегаScript = 0 Тогда
Прервать;
КонецЕсли;
ПозицияОкончанияОткрывающегоТегаScript = СтрНайти(НРегТекст, ">",, ПозицияНачалаОткрывающегоТегаScript + 1);
ПозицияОкончанияЗакрывающегоТегаScript = СтрНайти(НРегТекст, ">",, ПозицияНачалаЗакрывающегоТегаScript + 1);
Если ПозицияОкончанияОткрывающегоТегаScript = 0 Или ПозицияОкончанияЗакрывающегоТегаScript = 0 Тогда
Прервать;
КонецЕсли;
// Добавим текст до скрипта
ТекстДоСкрипта = Сред(Текст, ПозицияНачалаОбработки, ПозицияНачалаОткрывающегоТегаScript - ПозицияНачалаОбработки);
МассивСтрокБезВредоносногоТекста.Добавить(ТекстДоСкрипта);
ПозицияНачалаОбработки = ПозицияОкончанияЗакрывающегоТегаScript + 1;
НомерСкрипта = НомерСкрипта + 1;
КонецЦикла;
Если МассивСтрокБезВредоносногоТекста.Количество() > 0 Тогда
// Добавим текст после последнего скрипта
ТекстДоСкрипта = Сред(Текст, ПозицияНачалаОбработки);
МассивСтрокБезВредоносногоТекста.Добавить(ТекстДоСкрипта);
// Сформируем итоговую строку без скрипта
Текст = СтрСоединить(МассивСтрокБезВредоносногоТекста);
КонецЕсли;
КонецПроцедуры
Орфографическая ошибка в виджета (найдено 8): виджета Орфографическая ошибка в ТелоВиджета (найдено 3): Виджета Орфографическая ошибка в ФонаВиджета (найдено 3): Виджета Орфографическая ошибка в виджете: виджете Орфографическая ошибка в HTMLПредставлениеВиджета: Виджета Орфографическая ошибка в viewport (найдено 2): viewport Орфографическая ошибка в bgcolor: bgcolor