Переименовываем data-old в data-guide. Справка допускает замену исходного узла новым, поэтому не полагаемся на старую ссылку.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте учебную базу платформы 8.5.1.1343 и серверную процедуру учебного общего модуля. Каждый пример выполняйте отдельно.
Все данные заказа вымышлены и находятся в строке. ЧтениеHTML разбирает данные, но не является браузером: форма не отправляется, ссылки не открываются, картинки не скачиваются.
Никакие файлы, адреса сайтов, токены и документы информационной базы не нужны. Не заменяйте учебную строку произвольным внешним HTML без отдельной проверки безопасности.
Индексы коллекций начинаются с нуля. Перед обращением к найденному узлу проверяйте Неопределено; перед специальными свойствами элемента проверяйте его тип.
HTML = "<html><head><title>Учебный заказ</title><meta id='meta' name='description' content='Вымышленный заказ'></head>
|<body id='body'><p id='note'>Заказ существует только в памяти</p><pre id='code'>A-01: 3
|B-02: 1</pre>
|<form id='order' name='order' action='' method='get'>
|<input id='customer' name='customer' type='text' value='Учебный покупатель'>
|<input id='accepted' name='accepted' type='checkbox' value='yes'>
|<button id='preview' name='preview' type='button' value='preview'>Предпросмотр</button></form>
|<table id='items' summary='Книга и ручка'><caption id='caption'>Товары</caption><colgroup><col id='column'></colgroup><tbody>
|<tr id='book'><td id='book-name'>Книга</td><td>3</td></tr><tr id='pen'><td>Ручка</td><td>1</td></tr>
|</tbody></table><a id='help' name='help' href='#note'>Пояснение</a><img id='logo' alt='Учебная картинка без источника'>
|</body></html>";
Чтение = Новый ЧтениеHTML;
Чтение.УстановитьСтроку(HTML);
Попытка
Построитель = Новый ПостроительDOM;
Документ = Построитель.Прочитать(Чтение);
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если ТипЗнч(Документ) <> Тип("ДокументHTML") Тогда
ВызватьИсключение "Ожидался ДокументHTML, а не XML-документ";
КонецЕсли;
Форма = Документ.ПолучитьЭлементПоИдентификатору("order");
Если Форма = Неопределено Тогда
ВызватьИсключение "Не найден учебный элемент order";
КонецЕсли;
Если ТипЗнч(Форма) <> Тип("ЭлементФормаHTML") Тогда
ВызватьИсключение "Неожиданный тип учебного элемента order";
КонецЕсли;
Блок = Документ.СоздатьЭлемент("guide-section");
Если ТипЗнч(Блок) <> Тип("ЭлементHTML") Тогда
ВызватьИсключение "Учебный контейнер должен иметь общий тип ЭлементHTML";
КонецЕсли;
Форма.ДобавитьДочерний(Блок);
Атрибут = Документ.СоздатьАтрибут("data-old");
Атрибут.Значение = "A-01";
Блок.УстановитьУзелАтрибута(Атрибут);
Результат = Документ.ПереименоватьУзел(Атрибут, "data-guide");
Если Результат = Неопределено Тогда
ВызватьИсключение "После переименования ожидается актуальный узел";
КонецЕсли;
Сообщить(Результат.ИмяУзла = "data-guide");
Сообщить(Блок.ЕстьАтрибут("data-guide"));
Сообщить(Не Блок.ЕстьАтрибут("data-old"));
Сообщить(Блок.ПолучитьАтрибут("data-guide") = "A-01");Разбор по шагам
Создаём и прикрепляем только собственный атрибут с допустимым XML-именем.
Результат метода — актуальный узел; исходный объект мог быть заменён.
Проверяем новое имя, отсутствие старого и сохранённое строковое значение.
Как проверить результат
Четыре сравнения Истина: новое имя, наличие нового, отсутствие старого и значение A-01.
Текст заказа и исходные id не должны измениться.
Ожидаемый результат
Переименование проверено по актуальному дереву, не по предположению об идентичности.
На что обратить внимание
Не переименовывайте исходный id внешнего документа без проверки ссылок на него.
Общий возвращаемый DOM-интерфейс не позволяет без проверки вызывать специальные свойства атрибута результата.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.