У текстового узла операции со смещением начинаются с нуля. Разделение создаёт соседний узел, нормализация соединяет соседние текстовые узлы.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Выполняйте на сервере. Используйте приведённые строки без изменений для первой проверки смещений.
Все операции выполняются над содержимым XML в памяти; файл не изменяется.
Документ = Новый ДокументDOM("", "name");
Корень = Документ.ЭлементДокумента;
Текст = Документ.СоздатьТекстовыйУзел("Книга");
Корень.ДобавитьДочерний(Текст);
Текст.ВставитьДанные(0, "новая ");
Текст.ДобавитьДанные("!");
Сообщить(Текст.ВыбратьДанные(0, 5));
Текст.ЗаменитьДанные(6, 5, "Тетрадь");
Текст.УдалитьДанные(0, 6);
Сообщить(Текст.Данные);
Сообщить(Текст.Размер);
ВтораяЧасть = Текст.РазделитьТекст(7);
Сообщить(Текст.Данные);
Сообщить(ВтораяЧасть.Данные);
Сообщить(Текст.ПолныйТекст);
Сообщить(Корень.ДочерниеУзлы.Количество());
Корень.Нормализовать();
Сообщить(Корень.ДочерниеУзлы.Количество());
Текст = Корень.ПервыйДочерний;
НовыйТекст = Текст.ЗаменитьПолныйТекст("Ручка");
Сообщить(НовыйТекст.Данные);
Сообщить(Корень.ТекстовоеСодержимое);
Сообщить(НовыйТекст.ЭтоПробельныеСимволыЭлемента);Разбор по шагам
Вставляем слово новая в начало и восклицательный знак в конец.
Заменяем Книга на Тетрадь, удаляем начальное слово со следующим пробелом.
РазделитьТекст(7) отделяет знак !; ПолныйТекст включает соседние текстовые узлы.
Нормализовать объединяет их; заново получаем первый дочерний узел и заменяем полный текст.
Как проверить результат
После удаления префикса данные Тетрадь! и размер 8; после разделения части Тетрадь и !.
Число дочерних узлов меняется 2 → 1; итоговое содержимое корня Ручка.
Ожидаемый результат
Текст изменён без разрушения XML-структуры, соседние части собраны обратно.
На что обратить внимание
Смещения здесь начинаются с 0; не переносите автоматически нумерацию из строковых функций 1С, где первая позиция часто 1.
После операций удаления и нормализации заново получайте нужный узел; прежняя ссылка может относиться к отсоединённому узлу.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.