Вставляет узел в список дочерних перед существующим дочерним узлом, заданным параметром <Узел>. Если вставляемый узел является узлом ФрагментДокумента, то все его дочерние узлы будут вставлены перед узлом, заданным параметром <Узел>, в том же порядке. Если узел, заданный параметром <НовыйУзел>, уже содержится в дереве документа, то он сначала удаляется из дочерних узлов прежнего родителя и вставляется в список дочерних узлов нового родителя.
Синтаксис
ВставитьПеред(<НовыйУзел>, <Узел>)Полное описание, параметры и ограничения
ЭлементСвязьHTML.ВставитьПеред (HTMLLinkElement.InsertBefore)
ЭлементСвязьHTML (HTMLLinkElement)
ВставитьПеред (InsertBefore)
Доступен, начиная с версии 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, Комментарий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С; выполните проверки в своём учебном контексте.
На что обратить внимание
Исключение означает отказ, а не успешное добавление. Эти вызовы не следует использовать для создания содержимого листового элемента.
ВставитьПеред и ДобавитьДочерний также могут отказаться из-за другого документа, предка или режима только чтения. Здесь узлы принадлежат собственному документу.
В рабочем алгоритме ошибку нужно обрабатывать по задаче, а не безусловно продолжать четыре операции.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.