ПолеHTMLДокумента.Рамка

Свойства · Border

Тип: Рамка. Содержит параметры рамки вокруг поля HTML-документа.

Полное описание, параметры и ограничения

ПолеHTMLДокумента.Рамка (HTMLDocumentField.Border)

ПолеHTMLДокумента (HTMLDocumentField)

Рамка (Border)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: Рамка.
Содержит параметры рамки вокруг поля HTML-документа.
Доступность:

Толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Вывести собственную карточку товара с экранированием HTML

Название из своего поля ввода вставляется только как текст в h1. Символы < и & не превращаются в теги; внешний HTML не загружается.

Где и как запускать

Полный модуль собственной обычной формы; толстый клиент. Не HTML браузера руководства и не управляемая форма.

Подготовка

  1. Создайте внешнюю обработку с отдельной обычной формой в учебной базе. Добавьте ПолеHTMLДокумента с именем УчебныйHTML и кнопку УчебнаяКоманда вне него.

  2. Добавьте реквизиты УчебноеНазвание (Строка 100), УчебноеКоличество (Число 9.0), УчебноеРедактирование (Булево). Поле ввода УчебноеНазвание свяжите с реквизитом названия.

  3. ПриОткрытии назначьте одноимённой процедуре. Действие внешней кнопки вручную не назначайте: код связывает Нажатие с экспортной процедурой ВыполнитьУчебноеДействие(Элемент). ПриОткрытии самой формы остаётся без параметров.

  4. Толстый клиент с обычными формами. Каждый урок — полный модуль своей копии формы. Собственный HTML не содержит сценариев, внешних картинок, URL или сетевых запросов.

Процедура ПриОткрытии()
    УчебноеНазвание = "Книга";
    УчебноеКоличество = 3;
    УчебноеРедактирование = Ложь;
    Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
    Поле.УстановитьРежим(РежимПоляHTMLДокумента.Просмотр);
    Поле.УстановитьТекст(СформироватьУчебныйHTML());
    Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
    Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебноеДействие"));
    Поле.Вывод = ИспользованиеВывода.Запретить;
    Поле.Рамка = Новый Рамка(ТипРамки.Одинарная);
    Поле.ЦветРамки = Новый Цвет(180, 195, 210);

КонецПроцедуры

Процедура ВыполнитьУчебноеДействие(Элемент) Экспорт
    Поле = ЭтаФорма.ЭлементыФормы.УчебныйHTML;
    Если ПустаяСтрока(УчебноеНазвание) Тогда
        Сообщить("Введите собственное учебное название");
        Возврат;
    КонецЕсли;
    Поле.УстановитьТекст(СформироватьУчебныйHTML());
    ТекстHTML = Поле.ПолучитьТекст();
    Сообщить(СтрНайти(ТекстHTML, "Количество: 3") > 0);
    Сообщить(Поле.Вывод = ИспользованиеВывода.Запретить);
    Сообщить(УчебноеКоличество = 3);
КонецПроцедуры

Функция СформироватьУчебныйHTML()
    БезопасноеНазвание = СтрЗаменить(УчебноеНазвание, "&", "&amp;");
    БезопасноеНазвание = СтрЗаменить(БезопасноеНазвание, "<", "&lt;");
    БезопасноеНазвание = СтрЗаменить(БезопасноеНазвание, ">", "&gt;");
    Возврат "<!doctype html><html><head><meta charset='utf-8'><title>Свой учебный HTML</title></head><body><h1>"
        + БезопасноеНазвание + "</h1><p>Количество: " + Строка(УчебноеКоличество) + "</p></body></html>";
КонецФункции

Разбор по шагам

  1. УчебноеНазвание — свои данные формы. Сначала проверяется пустое значение, затем строится полный собственный HTML.

  2. Экранирование выполняется в порядке &: &amp;, затем <: &lt;, затем >: &gt;. Это контекст текста, не атрибута, JavaScript или URL.

  3. УстановитьТекст загружает строку в поле, не формируя адрес документа. По справке внутренние ссылки после него в режиме просмотра не работают.

  4. ПолучитьТекст возвращает HTML: поиск проверяет значимый фрагмент, не побайтовое совпадение сериализации.

  5. Вывод = Запретить ограничивает операции вывода элемента. Это UI-ограничение, не защита от чтения программой и не пароль данных.

Как проверить результат

  1. После Книга: три Истина. Введите Книга <3 & бумага и нажмите кнопку: на странице должны быть буквальные < и &, а не новый тег.

  2. Очистите название: сообщение введите название; прежний HTML не заменяется пустым.

Ожидаемый результат

Свой текст отображается как текст, а не исполняемая HTML-разметка.

На что обратить внимание

  1. Эта функция экранирует только текстовый узел; для иных контекстов нужны другие правила.

  2. Не разрешайте запуск внешних сценариев или обход ограничений происхождения страниц.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.