Предположим, нам нужно программно изменить содержимое HTML-документа, например добавить в уже существующую таблицу документа еще одну строку и заполнить значения ее столбцов.
Для решения этой задачи добавим команду ИзменитьСодержимоеHTML. Обработчик команды заполним следующим образом (листинг 6.102).
Листинг 6.102. Обработчик команды «ИзменитьСодержимоеHTML»
&НаКлиенте
Процедура ИзменитьСодержимоеHTML(Команда)
ДокументHTML = ПолучитьДокументHTML(Текст_HTML);
Узлы = ДокументHTML.ПолучитьЭлементыПоИмени("table");
Таблица = Узлы[0];
НоваяСтрока = ДокументHTML.СоздатьЭлемент("tr");
Таблица.ДобавитьДочерний(НоваяСтрока);
НоваяЯчейка = ДокументHTML.СоздатьЭлемент("td");
НоваяЯчейка.ТекстовоеСодержимое = "Пятое";
НоваяСтрока.ДобавитьДочерний(НоваяЯчейка);
НоваяЯчейка = ДокументHTML.СоздатьЭлемент("td");
НоваяЯчейка.ТекстовоеСодержимое = "Шестое";
НоваяСтрока.ДобавитьДочерний(НоваяЯчейка);
АдресHTML = ПолучитьТекстHTML(ДокументHTML);
КонецПроцедуры
В этом обработчике сначала мы получаем объект ДокументHTML с помощью функции ПолучитьДокументHTML(), в которую передаем текст HTML-документа, содержащийся в реквизите Текст_HTML. Эта функция была рассмотрена выше, в листинге 6.98.
После этого методом ПолучитьЭлементыПоИмени("table") объекта ДокументHTML мы получаем коллекцию элементов документа, содержащих таблицы, и из этой коллекции получаем первый узел типа ЭлементТаблицаHTML.
Затем методом СоздатьЭлемент("tr") объекта ДокументHTML мы создаем элемент документа типа ЭлементСтрокаТаблицыHTML. И добавляем этот узел в таблицу методом ДобавитьДочерний() объекта ЭлементТаблицаHTML. Таким образом, мы добавили новую строку в таблицу в качестве подчиненного узла.
Затем методом СоздатьЭлемент("td") объекта ДокументHTML мы создаем элемент документа типа ЭлементЯчейкаТаблицыHTML. Устанавливаем текстовое содержимое этой ячейки и добавляем этот узел в новую строку таблицы методом ДобавитьДочерний() объекта ЭлементСтрокаТаблицыHTML. Таким образом, мы добавили новую ячейку в строку в качестве подчиненного узла.
Аналогичным образом заполняем и добавляем в строку вторую ячейку.
Теперь нам нужно получить HTML-текст результирующего документа, чтобы запомнить его реквизите АдресHTML. Для этого мы используем функцию ПолучитьТекстHTML(), в которую передаем результирующий документ. Функция была рассмотрена выше, в листинге 6.95.
Таким образом, после загрузки HTML-документа из файла (кнопка Прочитать HTML из файла) и нажатия кнопки Изменить содержимое HTML вид документа изменится следующим образом (рис. 6.19).
Рис. 6.19. Измененный HTML-документ