Тип: СписокУзловHTML. Список дочерних узлов HTML. В случае отсутствия дочерних узлов содержит пустой список.
Полное описание, параметры и ограничения
ЭлементБлокHTML.ДочерниеУзлы (HTMLDivElement.ChildNodes)
ЭлементБлокHTML (HTMLDivElement)
ДочерниеУзлы (ChildNodes)
Доступен, начиная с версии 8.2.
Использование:
Только чтение.
Описание:
Тип: СписокУзловHTML.
Список дочерних узлов HTML. В случае отсутствия дочерних узлов содержит пустой список.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Изменить настоящий HTML-комментарий и проверить все 14 символов
Настоящий КомментарийHTML из своей строки проходит вставку, чтение фрагмента, замену, удаление и добавление данных. Проверяем B-02 проверено, размер 14 и неизменный видимый текст.
Где и как запускать
Сервер; полный неглобальный непривилегированный общий модуль HTMLПометка85. Только собственная строка и память.
Подготовка
Будущий ручной опыт выполняйте в своей новой пустой учебной конфигурации на платформе 8.5.1.1343, в толстом управляемом клиенте. Здесь создаётся только собственное дерево из фиксированной строки в памяти; файлы, Интернет и объекты рабочей базы не используются.
Общие → Общие модули → создать HTMLПометка85. Сервер=Да; Глобальный=Нет; Привилегированный=Нет; Вызов сервера=Нет; оба клиентских флага=Нет; Внешнее соединение=Нет; повторное использование возвращаемых значений — Не использовать. Основной блок вставьте целиком в пустой модуль.
Общие → Общие формы → создать управляемую форму HTMLПометка85. Добавьте реквизит Результат85: Строка неограниченной длины; выведите многострочным полем только для чтения. Создайте команду Проверить85, Действие=Проверить85, выведите её кнопку.
У формы задайте АвтоматическоеСохранениеДанныхВНастройках=АвтоматическоеСохранениеДанныхФормыВНастройках.НеИспользовать и СохранениеДанныхВНастройках=СохранениеДанныхФормыВНастройках.НеИспользовать. Это два различных перечисления, не Булево. Не создавайте обработчики сохранения.
Второй блок — целый модуль формы HTMLПометка85. Третий — целый модуль общей команды ОткрытьHTMLПометка85 без параметра. Общую команду включите в командный интерфейс собственной учебной подсистемы. Штатные параметры обоих обработчиков передаёт платформа; вручную их не вызывайте.
Обновите конфигурацию собственной учебной базы, откройте форму общей командой и нажмите Проверить85. Разбор и изменения своих узлов выполняются на сервере; клиент получает только строку проверенного результата.
Специальные HTML-классы старого DOM и часть операций не рекомендуются начиная с 8.2. Это узкий урок сопровождения старого кода, не способ управлять браузером и не рекомендация для нового веб-интерфейса.
Этот код в 1С ещё не компилировался и не выполнялся. Неверный фактический тип, форма дерева, отказ операции или исключение означают остановку; сообщение об остановке не является успешным примером.
Функция ПрочитатьСвоюСтроку85(СтрокаHTML85)
Чтение = Новый ЧтениеHTML;
Если ТипЗнч(Чтение) <> Тип("ЧтениеHTML") Тогда
ВызватьИсключение "Не создано настоящее ЧтениеHTML";
КонецЕсли;
Попытка
Чтение.УстановитьСтроку(СтрокаHTML85);
Построитель = Новый ПостроительDOM;
Если ТипЗнч(Построитель) <> Тип("ПостроительDOM") Тогда
ВызватьИсключение "Не создан настоящий ПостроительDOM";
КонецЕсли;
Документ = Построитель.Прочитать(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ТипЗнч(Документ) <> Тип("ДокументHTML") Тогда
ВызватьИсключение "Не получен настоящий ДокументHTML";
КонецЕсли;
Возврат Документ;
КонецФункции
Функция НайтиСвойБлок85(Документ, Идентификатор85)
Блок85 = Документ.ПолучитьЭлементПоИдентификатору(Идентификатор85);
Если Блок85 = Неопределено Тогда
ВызватьИсключение "В своей строке не найден нужный div";
КонецЕсли;
Если ТипЗнч(Блок85) <> Тип("ЭлементБлокHTML")
Или Блок85.ДокументВладелец <> Документ Тогда
ВызватьИсключение "Нужен настоящий собственный ЭлементБлокHTML";
КонецЕсли;
Возврат Блок85;
КонецФункции
Функция Проверить85() Экспорт
Документ = ПрочитатьСвоюСтроку85("<html><head><title>Своя пометка</title></head><body><div id='comment85'><!--A-01--></div><div id='commentSentinel85'>Заказ A-01, количество 3</div></body></html>");
Блок85 = НайтиСвойБлок85(Документ, "comment85");
Контроль85 = НайтиСвойБлок85(Документ, "commentSentinel85");
Узлы85 = Блок85.ДочерниеУзлы;
Если ТипЗнч(Узлы85) <> Тип("СписокУзловHTML")
Или ТипЗнч(Узлы85.Количество()) <> Тип("Число")
Или Узлы85.Количество() <> 1 Тогда
ВызватьИсключение "Нужен один настоящий дочерний HTML-комментарий";
КонецЕсли;
Пометка = Узлы85.Элемент(0);
Если ТипЗнч(Пометка) <> Тип("КомментарийHTML")
Или ТипЗнч(Пометка.Данные) <> Тип("Строка") Или Пометка.Данные <> "A-01"
Или ТипЗнч(Пометка.Размер) <> Тип("Число") Или Пометка.Размер <> 4
Или Пометка.ДокументВладелец <> Документ Тогда
ВызватьИсключение "Не получена собственная настоящая пометка A-01";
КонецЕсли;
КонтрольДо85 = Контроль85.ТекстовоеСодержимое;
Если ТипЗнч(КонтрольДо85) <> Тип("Строка") Или КонтрольДо85 <> "Заказ A-01, количество 3" Тогда
ВызватьИсключение "Не получен контроль видимого текста";
КонецЕсли;
Пометка.ВставитьДанные(4, "!");
Фрагмент85 = Пометка.ВыбратьДанные(0, 4);
Если ТипЗнч(Фрагмент85) <> Тип("Строка") Или Фрагмент85 <> "A-01"
Или Пометка.Данные <> "A-01!" Тогда
ВызватьИсключение "Вставка и реальное чтение фрагмента не подтверждены";
КонецЕсли;
Пометка.ЗаменитьДанные(0, 4, "B-02");
Пометка.УдалитьДанные(4, 1);
Пометка.ДобавитьДанные(" проверено");
Если ТипЗнч(Пометка.Данные) <> Тип("Строка") Или Пометка.Данные <> "B-02 проверено"
Или ТипЗнч(Пометка.Размер) <> Тип("Число") Или Не (Пометка.Размер = 14) Тогда
ВызватьИсключение "Не получена фактическая пометка из 14 символов";
КонецЕсли;
Если Блок85.ДочерниеУзлы.Количество() <> 1
Или Блок85.ДочерниеУзлы.Элемент(0) <> Пометка
Или Пометка.ДокументВладелец <> Документ
Или Контроль85.ТекстовоеСодержимое <> КонтрольДо85 Тогда
ВызватьИсключение "Изменение пометки затронуло не своё содержимое";
КонецЕсли;
Возврат "Пометка: " + Пометка.Данные + "; символов: " + Строка(Пометка.Размер)
+ ". Видимый контроль: " + Контроль85.ТекстовоеСодержимое;
КонецФункцииЦелый модуль своей управляемой формы HTMLПометка85
Общие → Общие формы → HTMLПометка85 → пустой модуль. Вставить целиком; Результат85 — строка; Действие команды Проверить85 связано с обработчиком.
Клиент — настоящий обработчик команды; сервер — ПолучитьПротокол85НаСервере. По границе передаётся только строка.
&НаКлиенте
Процедура Проверить85(Команда)
Если ТипЗнч(Команда) <> Тип("КомандаФормы") Или Команда.Имя <> "Проверить85" Тогда
ВызватьИсключение "Нажмите настоящую собственную кнопку проверки";
КонецЕсли;
Результат85 = "";
Попытка
Получено85 = ПолучитьПротокол85НаСервере();
Если ТипЗнч(Получено85) <> Тип("Строка") Или Получено85 = "" Тогда
ВызватьИсключение "Сервер не вернул полный строковый протокол";
КонецЕсли;
Результат85 = Получено85;
Исключение
Результат85 = "Проверка НЕ завершена. Опыт остановлен.";
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаСервере
Функция ПолучитьПротокол85НаСервере()
Если ИмяФормы <> "ОбщаяФорма.HTMLПометка85"
Или АвтоматическоеСохранениеДанныхВНастройках <> АвтоматическоеСохранениеДанныхФормыВНастройках.НеИспользовать
Или СохранениеДанныхВНастройках <> СохранениеДанныхФормыВНастройках.НеИспользовать Тогда
ВызватьИсключение "Нужна своя форма с отключённым сохранением данных";
КонецЕсли;
Отчет85 = HTMLПометка85.Проверить85();
Если ТипЗнч(Отчет85) <> Тип("Строка") Или Отчет85 = "" Тогда
ВызватьИсключение "Собственный модуль не вернул полный протокол";
КонецЕсли;
Возврат Отчет85;
КонецФункцииЦелый модуль своей общей команды ОткрытьHTMLПометка85
Общие → Общие команды → ОткрытьHTMLПометка85 → пустой модуль. Без параметра; включить в собственный командный интерфейс.
Толстый управляемый клиент, &НаКлиенте. Настоящий ОбработкаКоманды с двумя штатными параметрами.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ТолстыйКлиентУправляемоеПриложение Тогда
Если ПараметрКоманды <> Неопределено
Или ТипЗнч(ПараметрыВыполненияКоманды) <> Тип("ПараметрыВыполненияКоманды") Тогда
ВызватьИсключение "Откройте свою форму штатной общей командой без параметра";
КонецЕсли;
ОткрытьФорму("ОбщаяФорма.HTMLПометка85");
#Иначе
ВызватьИсключение "Нужен толстый управляемый клиент";
#КонецЕсли
КонецПроцедурыРазбор по шагам
В собственной строке служебная пометка <!--A-01--> — отдельный ребёнок div. Она получается из настоящего HTML-списка, а не из СоздатьКомментарий, у которого установленная справка объявляет КомментарийDOM.
Перед специальными методами проверяются фактический КомментарийHTML, строка A-01, размер 4, число детей и документ-владелец. Отдельно запоминается видимый контроль заказа.
ВставитьДанные(4,"!") добавляет знак после четырёх символов. ВыбратьДанные(0,4) возвращает реальную строку A-01; проверяется и полный промежуточный текст A-01!.
ЗаменитьДанные(0,4,"B-02") заменяет код; УдалитьДанные(4,1) удаляет знак; ДобавитьДанные(" проверено") дописывает собственное слово. Изменяющие методы вызываются как процедуры, без присваивания их результата.
Повторное чтение Данные и Размер подтверждает B-02 проверено и 14 символов. РодительскийУзел прикреплённой пометки с div не сравнивается: объявленный тип этого свойства не доказывает такой переход.
Проверяются неизменные ребёнок, документ-владелец и видимый контроль. Только фактические прочитанные значения входят в итоговую строку.
Как проверить результат
Первый будущий запуск: прочитан фрагмент A-01, конечные данные B-02 проверено, настоящий размер 14 и неизменный видимый контроль заказа.
В своём отладчике проверьте смещения по символам: позиции начинаются с нуля; 4 означает место после A-01. ВыбратьДанные действительно возвращает строку, остальные четыре операции изменяют объект.
Только в собственной учебной копии замените комментарий текстом или меняйте контроль: ожидается остановка, а не работа методов по объекту другого класса.
Не проверяйте результат визуализацией внешнего сайта: комментарий — данные собственного дерева. Код не открывает браузер, не сохраняет HTML и не меняет бизнес-объекты.
Ожидаемый результат
При полном успешном контроле: фактическая пометка B-02 проверено, фактический размер 14 и неизменный видимый контроль заказа.
На что обратить внимание
Модель создаётся только из собственной фиксированной строки. Нельзя подставлять внешний документ, объект пользователя, файл, URL или рабочие данные и считать этот пример проверкой их безопасности.
Установленная 8.5.1.1343 объявляет СоздатьКомментарий → КомментарийDOM и СоздатьТекстовыйУзел → ТекстDOM. Они не служат доказательством специальных HTML-получателей. Здесь реальные специальные узлы происходят из собственного HTMLReader/DOMBuilder и проверяются.
Общий возвращаемый HTML-тип не обещает конкретный класс в любой среде. Несовпадение фактического типа/формы означает остановку и неподтверждённый опыт, не успешный обход ошибки.
Не переносите правила имён, соседей и пространств имён из W3C по памяти. Сохраняются точные объявленные локальные контракты и реальные наблюдения; данные узлов не приводятся к другому классу.
Чтение закрывается на нормальном пути и в обработчике ошибки; исключение повторно вызывается. Ошибка самого закрытия тоже останавливает опыт: успешная очистка при любом отказе не обещается.
Нативные тексты справки и существующие конфигурационные образцы не исправлялись. Компилятор и 1С во время подготовки не запускались; статические проверки не являются выполнением примера.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Удалить своё связанное HTML-пояснение и проверить пустой результат
Два настоящих ТекстHTML получаются из своей строки, переносятся в собственный контейнер и удаляются документированной пустой заменой. Повторное чтение подтверждает удаление пояснения и неизменный контроль заказа.
Где и как запускать
Сервер; полный неглобальный непривилегированный общий модуль HTMLТекст85. Только собственная строка и память.
Подготовка
Будущий ручной опыт выполняйте в своей новой пустой учебной конфигурации на платформе 8.5.1.1343, в толстом управляемом клиенте. Здесь создаётся только собственное дерево из фиксированной строки в памяти; файлы, Интернет и объекты рабочей базы не используются.
Общие → Общие модули → создать HTMLТекст85. Сервер=Да; Глобальный=Нет; Привилегированный=Нет; Вызов сервера=Нет; оба клиентских флага=Нет; Внешнее соединение=Нет; повторное использование возвращаемых значений — Не использовать. Основной блок вставьте целиком в пустой модуль.
Общие → Общие формы → создать управляемую форму HTMLТекст85. Добавьте реквизит Результат85: Строка неограниченной длины; выведите многострочным полем только для чтения. Создайте команду Проверить85, Действие=Проверить85, выведите её кнопку.
У формы задайте АвтоматическоеСохранениеДанныхВНастройках=АвтоматическоеСохранениеДанныхФормыВНастройках.НеИспользовать и СохранениеДанныхВНастройках=СохранениеДанныхФормыВНастройках.НеИспользовать. Это два различных перечисления, не Булево. Не создавайте обработчики сохранения.
Второй блок — целый модуль формы HTMLТекст85. Третий — целый модуль общей команды ОткрытьHTMLТекст85 без параметра. Общую команду включите в командный интерфейс собственной учебной подсистемы. Штатные параметры обоих обработчиков передаёт платформа; вручную их не вызывайте.
Обновите конфигурацию собственной учебной базы, откройте форму общей командой и нажмите Проверить85. Разбор и изменения своих узлов выполняются на сервере; клиент получает только строку проверенного результата.
Специальные HTML-классы старого DOM и часть операций не рекомендуются начиная с 8.2. Это узкий урок сопровождения старого кода, не способ управлять браузером и не рекомендация для нового веб-интерфейса.
Этот код в 1С ещё не компилировался и не выполнялся. Неверный фактический тип, форма дерева, отказ операции или исключение означают остановку; сообщение об остановке не является успешным примером.
Функция ПрочитатьСвоюСтроку85(СтрокаHTML85)
Чтение = Новый ЧтениеHTML;
Если ТипЗнч(Чтение) <> Тип("ЧтениеHTML") Тогда
ВызватьИсключение "Не создано настоящее ЧтениеHTML";
КонецЕсли;
Попытка
Чтение.УстановитьСтроку(СтрокаHTML85);
Построитель = Новый ПостроительDOM;
Если ТипЗнч(Построитель) <> Тип("ПостроительDOM") Тогда
ВызватьИсключение "Не создан настоящий ПостроительDOM";
КонецЕсли;
Документ = Построитель.Прочитать(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ТипЗнч(Документ) <> Тип("ДокументHTML") Тогда
ВызватьИсключение "Не получен настоящий ДокументHTML";
КонецЕсли;
Возврат Документ;
КонецФункции
Функция НайтиСвойБлок85(Документ, Идентификатор85)
Блок85 = Документ.ПолучитьЭлементПоИдентификатору(Идентификатор85);
Если Блок85 = Неопределено Тогда
ВызватьИсключение "В своей строке не найден нужный div";
КонецЕсли;
Если ТипЗнч(Блок85) <> Тип("ЭлементБлокHTML")
Или Блок85.ДокументВладелец <> Документ Тогда
ВызватьИсключение "Нужен настоящий собственный ЭлементБлокHTML";
КонецЕсли;
Возврат Блок85;
КонецФункции
Функция ПрочитатьСвойТекст85(Блок85, ОжидаемаяСтрока85)
Узлы85 = Блок85.ДочерниеУзлы;
Если ТипЗнч(Узлы85) <> Тип("СписокУзловHTML")
Или ТипЗнч(Узлы85.Количество()) <> Тип("Число")
Или Узлы85.Количество() <> 1 Тогда
ВызватьИсключение "Нужен список с одним настоящим текстовым узлом";
КонецЕсли;
Текст85 = Узлы85.Элемент(0);
Если ТипЗнч(Текст85) <> Тип("ТекстHTML")
Или ТипЗнч(Текст85.ЗначениеУзла) <> Тип("Строка")
Или Текст85.ЗначениеУзла <> ОжидаемаяСтрока85 Тогда
ВызватьИсключение "Не получен собственный ТекстHTML с нужной строкой";
КонецЕсли;
Возврат Текст85;
КонецФункции
Функция Проверить85() Экспорт
Документ = ПрочитатьСвоюСтроку85("<html><head><title>Свой текст</title></head><body><div id='textA85'>Книга</div><div id='textB85'>: 3</div><div id='textTarget85'></div><div id='textSentinel85'>Заказ A-01, количество 3</div></body></html>");
Источник185 = НайтиСвойБлок85(Документ, "textA85");
Источник285 = НайтиСвойБлок85(Документ, "textB85");
Цель85 = НайтиСвойБлок85(Документ, "textTarget85");
Контроль85 = НайтиСвойБлок85(Документ, "textSentinel85");
Первый85 = ПрочитатьСвойТекст85(Источник185, "Книга");
Второй85 = ПрочитатьСвойТекст85(Источник285, ": 3");
Если Первый85.ДокументВладелец <> Документ Или Второй85.ДокументВладелец <> Документ
Или Цель85.ДочерниеУзлы.Количество() <> 0 Тогда
ВызватьИсключение "Перед переносом нужна собственная пустая цель";
КонецЕсли;
КонтрольДо85 = Контроль85.ТекстовоеСодержимое;
Если ТипЗнч(КонтрольДо85) <> Тип("Строка")
Или КонтрольДо85 <> "Заказ A-01, количество 3" Тогда
ВызватьИсключение "Неверен собственный контрольный текст";
КонецЕсли;
Добавлен185 = Цель85.ДобавитьДочерний(Первый85);
Добавлен285 = Цель85.ДобавитьДочерний(Второй85);
Если ТипЗнч(Добавлен185) <> Тип("ТекстHTML")
Или ТипЗнч(Добавлен285) <> Тип("ТекстHTML")
Или Не Добавлен185.УзелИдентичен(Первый85)
Или Не Добавлен285.УзелИдентичен(Второй85) Тогда
ВызватьИсключение "Результаты переноса не подтверждают свои текстовые узлы";
КонецЕсли;
Если Источник185.ДочерниеУзлы.Количество() <> 0
Или Источник285.ДочерниеУзлы.Количество() <> 0
Или Цель85.ДочерниеУзлы.Количество() <> 2
Или Цель85.ТекстовоеСодержимое <> "Книга: 3" Тогда
ВызватьИсключение "Два реальных узла не перенесены в нужном порядке";
КонецЕсли;
Текущий = Цель85.ДочерниеУзлы.Элемент(0);
Если ТипЗнч(Текущий) <> Тип("ТекстHTML") Тогда
ВызватьИсключение "Перед пустой заменой нужен актуальный ТекстHTML";
КонецЕсли;
ПолныйДо85 = Текущий.ПолныйТекст;
Если ТипЗнч(ПолныйДо85) <> Тип("Строка") Или ПолныйДо85 <> "Книга: 3" Тогда
ВызватьИсключение "Не получен реальный связанный текст";
КонецЕсли;
ПустойРезультат = Текущий.ЗаменитьПолныйТекст("");
Если Не (ПустойРезультат = Неопределено) Тогда
ВызватьИсключение "Пустая замена должна вернуть Неопределено";
КонецЕсли;
Если Цель85.ДочерниеУзлы.Количество() <> 0
Или Цель85.ТекстовоеСодержимое <> ""
Или Контроль85.ТекстовоеСодержимое <> КонтрольДо85 Тогда
ВызватьИсключение "Повторное чтение не подтвердило удаление только своего пояснения";
КонецЕсли;
Возврат "Удалено пояснение: " + ПолныйДо85 + ". Дочерних узлов: "
+ Строка(Цель85.ДочерниеУзлы.Количество()) + ". Контроль: " + Контроль85.ТекстовоеСодержимое;
КонецФункцииЦелый модуль своей управляемой формы HTMLТекст85
Общие → Общие формы → HTMLТекст85 → пустой модуль. Вставить целиком; Результат85 — строка; Действие команды Проверить85 связано с обработчиком.
Клиент — настоящий обработчик команды; сервер — ПолучитьПротокол85НаСервере. По границе передаётся только строка.
&НаКлиенте
Процедура Проверить85(Команда)
Если ТипЗнч(Команда) <> Тип("КомандаФормы") Или Команда.Имя <> "Проверить85" Тогда
ВызватьИсключение "Нажмите настоящую собственную кнопку проверки";
КонецЕсли;
Результат85 = "";
Попытка
Получено85 = ПолучитьПротокол85НаСервере();
Если ТипЗнч(Получено85) <> Тип("Строка") Или Получено85 = "" Тогда
ВызватьИсключение "Сервер не вернул полный строковый протокол";
КонецЕсли;
Результат85 = Получено85;
Исключение
Результат85 = "Проверка НЕ завершена. Опыт остановлен.";
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаСервере
Функция ПолучитьПротокол85НаСервере()
Если ИмяФормы <> "ОбщаяФорма.HTMLТекст85"
Или АвтоматическоеСохранениеДанныхВНастройках <> АвтоматическоеСохранениеДанныхФормыВНастройках.НеИспользовать
Или СохранениеДанныхВНастройках <> СохранениеДанныхФормыВНастройках.НеИспользовать Тогда
ВызватьИсключение "Нужна своя форма с отключённым сохранением данных";
КонецЕсли;
Отчет85 = HTMLТекст85.Проверить85();
Если ТипЗнч(Отчет85) <> Тип("Строка") Или Отчет85 = "" Тогда
ВызватьИсключение "Собственный модуль не вернул полный протокол";
КонецЕсли;
Возврат Отчет85;
КонецФункцииЦелый модуль своей общей команды ОткрытьHTMLТекст85
Общие → Общие команды → ОткрытьHTMLТекст85 → пустой модуль. Без параметра; включить в собственный командный интерфейс.
Толстый управляемый клиент, &НаКлиенте. Настоящий ОбработкаКоманды с двумя штатными параметрами.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
#Если ТолстыйКлиентУправляемоеПриложение Тогда
Если ПараметрКоманды <> Неопределено
Или ТипЗнч(ПараметрыВыполненияКоманды) <> Тип("ПараметрыВыполненияКоманды") Тогда
ВызватьИсключение "Откройте свою форму штатной общей командой без параметра";
КонецЕсли;
ОткрытьФорму("ОбщаяФорма.HTMLТекст85");
#Иначе
ВызватьИсключение "Нужен толстый управляемый клиент";
#КонецЕсли
КонецПроцедурыРазбор по шагам
Своя строка содержит два отдельных текста «Книга» и «: 3», пустой целевой div и контрольный текст заказа. Настоящий ЧтениеHTML читает строку, а ПостроительDOM получает ДокументHTML. После чтения reader закрывается.
ПолучитьЭлементПоИдентификатору объявляет общий ЭлементHTML, поэтому каждый фактический div проверяется как ЭлементБлокHTML. ДочерниеУзлы — настоящий СписокУзловHTML: сначала проверяются число детей и тип, затем индекс 0.
ДобавитьДочерний переносит два настоящих ТекстHTML из прежних контейнеров. Возвращённые объекты, пустые прежние списки, два новых ребёнка и видимый текст проверяются; это не создание HTML-текста через фабрику, возвращающую ТекстDOM.
ПолныйТекст актуального первого ребёнка реально объединяет «Книга: 3». Именно эту прочитанную строку используем в протоколе удаления.
ЗаменитьПолныйТекст("") удаляет связанную группу. В этой документированной ветке возвращается Неопределено; у результата не вызываются свойства. Непустая замена в урок не включена из-за объявленного в справке результата ТекстDOM.
После операции заново читаются целевой список, пустое текстовое содержимое и контроль заказа. Клиент видит строку только после всех проверок.
Как проверить результат
Первый будущий запуск: протокол содержит фактически удалённое пояснение «Книга: 3», число детей цели 0 и прежний контроль «Заказ A-01, количество 3».
В собственном отладчике проследите настоящие типы HTML и перенос: прежние списки 1/1 → 0/0, целевой 0 → 2 → 0. Не заменяйте отсутствующий узел вручную.
Повторное нажатие создаёт новый документ из своей строки; исход предыдущего запуска не используется. После ошибочного запуска поле не должно сохранять прежний успешный отчёт.
Только в своей учебной копии измените исходный контроль или число детей: проверка должна остановиться до дальнейшей операции. Отказ или другой фактический тип не засчитывайте как успешную демонстрацию.
Ожидаемый результат
При полном успешном контроле: удалено реально прочитанное пояснение «Книга: 3», целевой список пуст, контроль заказа сохранён. Неопределено не используется как объект.
На что обратить внимание
Модель создаётся только из собственной фиксированной строки. Нельзя подставлять внешний документ, объект пользователя, файл, URL или рабочие данные и считать этот пример проверкой их безопасности.
Установленная 8.5.1.1343 объявляет СоздатьКомментарий → КомментарийDOM и СоздатьТекстовыйУзел → ТекстDOM. Они не служат доказательством специальных HTML-получателей. Здесь реальные специальные узлы происходят из собственного HTMLReader/DOMBuilder и проверяются.
Общий возвращаемый HTML-тип не обещает конкретный класс в любой среде. Несовпадение фактического типа/формы означает остановку и неподтверждённый опыт, не успешный обход ошибки.
Не переносите правила имён, соседей и пространств имён из W3C по памяти. Сохраняются точные объявленные локальные контракты и реальные наблюдения; данные узлов не приводятся к другому классу.
Чтение закрывается на нормальном пути и в обработчике ошибки; исключение повторно вызывается. Ошибка самого закрытия тоже останавливает опыт: успешная очистка при любом отказе не обещается.
Нативные тексты справки и существующие конфигурационные образцы не исправлялись. Компилятор и 1С во время подготовки не запускались; статические проверки не являются выполнением примера.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.