Заменяет дочерний узел, указанный параметром <СтарыйУзел>, на узел, указанный параметром <НовыйУзел>. Если новый узел - это ФрагментДокумента, то заменяемый узел будет заменен всеми дочерними узлами фрагмента документа. Если новый узел уже содержится в дереве документа, то он сначала удаляется из дочерних узлов старого родителя и вставляется в список дочерних узлов нового родителя.
Синтаксис
ЗаменитьДочерний(<НовыйУзел>, <СтарыйУзел>)Полное описание, параметры и ограничения
ЭлементСвязьHTML.ЗаменитьДочерний (HTMLLinkElement.ReplaceChild)
ЭлементСвязьHTML (HTMLLinkElement)
ЗаменитьДочерний (ReplaceChild)
Доступен, начиная с версии 8.2.
Синтаксис:
ЗаменитьДочерний(<НовыйУзел>, <СтарыйУзел>)
Параметры:
<НовыйУзел> (обязательный)
Тип: АтрибутHTML, ЭлементHTML, ЭлементКнопкаHTML, ЭлементВводаHTML, ЭлементЗаголовокHTML, ЭлементРазметкаHTML, ЭлементПлавающийФреймHTML, ЭлементВставкаHTML, ЭлементФреймHTML, ЭлементНаборФреймовHTML, ЭлементМетаHTML, ЭлементОбъектHTML, ЭлементСкриптHTML, ЭлементТаблицаHTML, ЭлементСтрокаТаблицыHTML, ЭлементЯчейкаТаблицыHTML, ЭлементКолонкаТаблицыHTML, ЭлементЗаголовокТаблицыHTML, ЭлементБлокHTML, ЭлементЛинияHTML, ЭлементФорматированногоТекстаHTML, ЭлементКартинкаHTML, ЭлементСвязьHTML, ЭлементЯкорьHTML, ЭлементАплетHTML, ЭлементФормаHTML, ДокументHTML, ТекстHTML, КомментарийHTML.
Новый дочерний узел.
<СтарыйУзел> (обязательный)
Тип: АтрибутHTML, ЭлементHTML, ЭлементКнопкаHTML, ЭлементВводаHTML, ЭлементЗаголовокHTML, ЭлементРазметкаHTML, ЭлементПлавающийФреймHTML, ЭлементВставкаHTML, ЭлементФреймHTML, ЭлементНаборФреймовHTML, ЭлементМетаHTML, ЭлементОбъектHTML, ЭлементСкриптHTML, ЭлементТаблицаHTML, ЭлементСтрокаТаблицыHTML, ЭлементЯчейкаТаблицыHTML, ЭлементКолонкаТаблицыHTML, ЭлементЗаголовокТаблицыHTML, ЭлементБлокHTML, ЭлементЛинияHTML, ЭлементФорматированногоТекстаHTML, ЭлементКартинкаHTML, ЭлементСвязьHTML, ЭлементЯкорьHTML, ЭлементАплетHTML, ЭлементФормаHTML, ДокументHTML, ТекстHTML, КомментарийHTML.
Существующий дочерний узел.
Возвращаемое значение:
Значение прежнего узла.
Описание:
Заменяет дочерний узел, указанный параметром <СтарыйУзел>, на узел, указанный параметром <НовыйУзел>.
Если новый узел - это ФрагментДокумента, то заменяемый узел будет заменен всеми дочерними узлами фрагмента документа.
Если новый узел уже содержится в дереве документа, то он сначала удаляется из дочерних узлов старого родителя и вставляется в список дочерних узлов нового родителя.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Исключение вызывается в случаях:
если данный узел не допускает в качестве дочерних добавляемый узел или добавляемый узел является одним из предков данного;
если узел добавляется сам в себя;
если данный узел - Документ и добавляется второй узел ОпределениеТипаДокумента или Элемент;
если добавляемый узел был создан документом отличным от создавшего данный узел;
если данный узел в режиме только для чтения или если предыдущий родитель добавляемого узла в режиме Только для чтения;
если заменяемый узел не найден;
если добавляемый узел является дочерним узлом узла Документ и реализация не поддерживает удаления узлов ОпределениеТипаДокумента и Элемент у узла Документ.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
link: связь не является текстовым контейнером
Учебная диагностика ограничения листового узла. Наличие методов в API не означает, что узел допускает дочерние элементы.
Где и как запускать
Синтаксический пример для серверного обработчика или толстого клиента. ЧтениеHTML и ПостроительDOM разбирают собственную строку в память; это не открытие страницы в браузере. Здесь код не выполнялся.
Подготовка
Используется только собственная строка HTML. Лист и посторонний узел получаются из одного документа, новый узел — его собственная копия.
Это намеренно отрицательный пример: дочерняя вставка в данный лист не является полезной успешной операцией.
Чтение = Новый ЧтениеHTML;
Чтение.УстановитьСтроку("<html><head><link id=""leaf""></head><body><span id=""other"">Тетрадь</span></body></html>");
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Чтение);
Чтение.Закрыть();
Лист = Документ.ПолучитьЭлементПоИдентификатору("leaf");
Посторонний = Документ.ПолучитьЭлементПоИдентификатору("other").ПервыйДочерний;
НовыйУзел = Посторонний.КлонироватьУзел(Истина);
Попытка
Лист.ВставитьПеред(НовыйУзел);
Исключение
Сообщить("ВставитьПеред: получен отказ");
КонецПопытки;
Попытка
Лист.ДобавитьДочерний(НовыйУзел);
Исключение
Сообщить("ДобавитьДочерний: получен отказ");
КонецПопытки;
Попытка
Лист.ЗаменитьДочерний(НовыйУзел, Посторонний);
Исключение
Сообщить("ЗаменитьДочерний: получен отказ");
КонецПопытки;
Попытка
Лист.УдалитьДочерний(Посторонний);
Исключение
Сообщить("УдалитьДочерний: получен отказ");
КонецПопытки;
Сообщить("Дочерних узлов: " + Строка(Лист.ДочерниеУзлы.Количество()));Разбор по шагам
Разберите строку и получите настоящий листовой узел.
Отдельно проверьте четыре вызова на этом же получателе; перехват исключения нужен только для учебной диагностики.
Посмотрите число дочерних узлов после вызовов, не объявляя отказ успешным редактированием.
Как проверить результат
Для ВставитьПеред и ДобавитьДочерний ожидается отказ в недопустимой дочерней вставке; если поведение другое, не считайте ожидаемую диагностику подтверждённой.
Посторонний не является дочерним этого листа: замена и удаление также должны отказать; исходный лист остаётся без дочерних узлов.
Ожидаемый результат
Приведён короткий пример синтаксиса и его ограничения. Здесь он не запускался в 1С; выполните проверки в своём учебном контексте.
На что обратить внимание
Исключение означает отказ, а не успешное добавление. Эти вызовы не следует использовать для создания содержимого листового элемента.
ВставитьПеред и ДобавитьДочерний также могут отказаться из-за другого документа, предка или режима только чтения. Здесь узлы принадлежат собственному документу.
В рабочем алгоритме ошибку нужно обрабатывать по задаче, а не безусловно продолжать четыре операции.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.