Набросал набор функций для работы с DOM для 1С 8.0, думаю будет полезным!
Функция DOMДокумент(Узел)
ДОМ=Узел.ownerDocument;
Если ДОМ=Неопределено Тогда
ДОМ=Узел;
КонецЕсли;
Возврат ДОМ;
КонецФункции
Функция DOMКорень(Дом)
Возврат Дом.DocumentElement;
КонецФункции
Функция DOMДобавитьУзел(УзелРодитель, Имя)
XMLDOMNode =DOMДокумент(УзелРодитель).createElement(Имя);
УзелРодитель.appendChild(XMLDOMNode);
Возврат XMLDOMNode;
КонецФункции
Функция DOMДети(Узел)
Перем Рез;
Рез=Новый Массив();
Для Инд=0 По Узел.ChildNodes().Length-1 Цикл
Рез.Добавить(Узел.ChildNodes(Инд));
КонецЦикла;
Возврат Рез;
КонецФункции
Процедура DOMУстановитьАтрибут(Узел, Имя, Значение)
Узел.setAttribute(Имя, Значение);
КонецПроцедуры
Процедура DOMУстановитьТекст(Узел, Текст)
Узел.Text=Текст;
КонецПроцедуры
Функция DOMУзелАтрибут(Узел, Имя)
Возврат Узел.GetAttribute(Имя);
КонецФункции
Функция DOMУзелИмя(Узел)
Возврат Узел.baseName;
КонецФункции
Функция DOMУзелПолучить(Узел, Имя, Массив=ложь)
Перем Рез;
Рез=Новый Массив();
ДОМ=DOMДокумент(Узел);
ДОМ.SetProperty("SelectionLanguage","XPath");
//Узлы = Узел.SelectNodes("//*[name()='"+Имя+"']");
Узлы = Узел.SelectNodes(Имя);
Для Инд=0 По Узлы.Length-1 Цикл
Если Массив=ложь Тогда
Возврат Узлы.item(Инд);
КонецЕсли;
Рез.Добавить(Узлы.item(Инд));
КонецЦикла;
Если Массив=Ложь Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Рез;
КонецФункции
Функция DOMУзелТекст(Узел)
Возврат Узел.Text;
КонецФункции
Функция DOMУстановитьКодировку(ДОМ, Кодировка="windows-1251")
pi = ДОМ.createProcessingInstruction("xml", " version='1.0' encoding='"+Кодировка+"'");
ДОМ.appendChild(pi);
КонецФункции