Вроде бы сам разобрался
Интерлюдия - некоторый код, создающий объект XDTO (к вопросу не относится)
Если ТипЗнч(Тип)=Тип("ТипЗначенияXDTO") Тогда
знч = "";
Если Тип.Фасеты<>неопределено Тогда
знч = Тип.Фасеты.Получить(0).Значение;
КонецЕсли;
об = ФабрикаXDTO.Создать(Тип,знч);
Иначе
об = ФабрикаXDTO.Создать(Тип);
КонецЕсли;
Показать
Далее "Узел" - узел приёмник, "Перед" - предыдущий узел (при обходе с конца) - всё это тоже напрямую к вопросу не относится
Такой код не рабочий
нУзел = Узел.ДокументВладелец.СоздатьЭлемент(URIПространстваИмен,ЛокальноеИмя);
Если Перед = неопределено Тогда
Узел.ДобавитьДочерний(нУзел);
Иначе
Узел.ВставитьПеред(нУзел, Перед);
КонецЕсли;
Запись = Новый ЗаписьУзловDOM();
Запись.Открыть(нУзел);
ФабрикаXDTO.ЗаписатьXML(запись, об);
Перед = нУзел
Показать
а вот такой -
работает
Запись = Новый ЗаписьУзловDOM();
Запись.Открыть(Узел.ДокументВладелец);
ФабрикаXDTO.ЗаписатьXML(Запись, об, Имя, URIПространстваИмен);
нУзел = Запись.УзелDOM.ПоследнийДочерний;
Если Перед = неопределено Тогда
Узел.ДобавитьДочерний(нУзел);
Иначе
Узел.ВставитьПеред(нУзел, Перед);
КонецЕсли;
Перед = нУзел;
Показать
То есть через ЗаписьУзловDOM создаём новый узел (а не через Узел.ДокументВладелец.СоздатьЭлемент) - уже заполненный, а потом просто размещаем его в нужную позицию!