Добрый всем день, ночь и прочие времена суток, когда 1С-ники читают данный сайт.
Иногда (может даже часто) нужно загрузить XML в дерево значений. Вот как можно это сделать через механизм XDTO:
Процедура ПоместитьВДерево(Текст)
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(Текст);
Об = ФабрикаXDTO.ПрочитатьXML(Чтение);
Строка = Дерево.ПолучитьЭлементы().Добавить();
Строка.Узел = "Корневой узел";
ПрочитатьУзел(Об, Строка);
КонецПроцедуры
Процедура ПрочитатьУзел(Об, лДерево)
Если ТипЗнч(Об) = Тип("СписокXDTO") Тогда
Для Каждого Ст ИЗ Об Цикл
Строка = лДерево.ПолучитьЭлементы().Добавить();
Строка.Узел = Об.ВладеющееСвойство;
Если ТипЗнч(Ст) = Тип("СписокXDTO") ИЛИ ТипЗнч(Ст) = Тип("ОбъектXDTO") Тогда
ПрочитатьУзел(Ст, Строка);
Иначе
Строка.Элемент = Ст;
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого Ст ИЗ Об.Свойства() Цикл
Строка = лДерево.ПолучитьЭлементы().Добавить();
Строка.Узел = Ст.Имя;
Если ТипЗнч(Об[Ст.Имя]) = Тип("СписокXDTO") ИЛИ ТипЗнч(Об[Ст.Имя]) = Тип("ОбъектXDTO") Тогда
ПрочитатьУзел(Об[Ст.Имя], Строка);
Иначе
Строка.Элемент = Об[Ст.Имя];
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
В данном случае у нас на управляемой форме есть дерево с двумя строковыми колонками "Узел" и "Значение". В процедуру "ПоместитьВДерево" нужно передать текст прочитанного XML-файла, после чего оный загрузится в дерево значений.