В дерево значений: Выгрузить результат запроса в Дерево Значений, Дерево Значений на форме
В XML: Создание XML файла выгрузки Работников организации с Группировкой по Подразделению
Код 1C v 8.х Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЛицевыеСчетаРаботниковОрганизации.НомерЛицевогоСчета,
| ЛицевыеСчетаРаботниковОрганизации.ФизЛицо.Наименование
|ИЗ
| РегистрСведений.ЛицевыеСчетаРаботниковОрганизации КАК ЛицевыеСчетаРаботниковОрганизации
|ГДЕ
| ЛицевыеСчетаРаботниковОрганизации.ФизЛицо.Наименование =Сотрудник";
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
Выборка = Запрос.Выполнить().Выбрать();
ПутьКФайлу = "D:\7763____z.xml";
Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу, "windows-1251");
Запись.ЗаписатьОбъявлениеXML(); //<?xml version="1.0" encoding="windows-1251"?>
Пока Выборка.Следующий() Цикл
Запись.ЗаписатьНачалоЭлемента("Ф.И.О.");
Запись.ЗаписатьТекст(Выборка.Наименование);
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.Закрыть();
Код 1C v 8.х Процедура ВыгрузитьНомНажатие(Элемент)
ПутьБУ = "";
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Фильтр = "(*.XML)|*.XML";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПутьБУ = ДиалогОткрытияФайла.ПолноеИмяФайла;
иначе
Возврат
КонецЕсли;
Если не ЗначениеЗаполнено(ПутьБУ) тогда
Возврат
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка как Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| ВЫБОР
| КОГДАОборНоменклатуры = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ Номенклатура.Ссылка В ИЕРАРХИИ (&ОборНоменклатуры)
| КОНЕЦ
| И НЕ Номенклатура.ЭтоГруппа";
Запрос.УстановитьПараметр("ОборНоменклатуры", ОборНоменклатуры);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Запись = новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьБУ);
Запись.ЗаписатьОбъявлениеXML();
Запись.ЗаписатьНачалоЭлемента("ROOT");
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Запись.ЗаписатьНачалоЭлемента("STR");
Запись.ЗаписатьАтрибут("КодНоменклатуры", XMLСтрока(ВыборкаДетальныеЗаписи.Номенклатура.Код));
Запись.ЗаписатьАтрибут("НаименованиеНоменклатуры", XMLСтрока(ВыборкаДетальныеЗаписи.Номенклатура.Наименование));
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
Запись.ЗаписатьКонецЭлемента();
Запись.Закрыть();
КонецПроцедуры
Процедура ЗагрузитьНомНажатие(Элемент)
ПутьУТП = "";
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Фильтр = "(*.XML)|*.XML";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПутьУТП = ДиалогОткрытияФайла.ПолноеИмяФайла;
иначе
Возврат
КонецЕсли;
Если не ЗначениеЗаполнено(ПутьУТП) тогда
Возврат
КонецЕсли;
Запрос = новый запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Код =Код
| И НЕ Номенклатура.ЭтоГруппа";
Чтение = новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьУТП);
пока Чтение.Прочитать() цикл
Если Чтение.ТипУзла <> ТипУзлаXML.НачалоЭлемента тогда
Продолжить;
КонецЕсли;
Если Чтение.Имя = "STR" тогда
Если Чтение.КоличествоАтрибутов() > 0 тогда
КодНоменклатуры = "";
НаименованиеНоменклатуры = "";
Пока Чтение.ПрочитатьАтрибут() Цикл
Если Чтение.ЛокальноеИмя = "КодНоменклатуры" тогда
КодНоменклатуры = СокрЛП(Чтение.Значение);
ИначеЕсли Чтение.ЛокальноеИмя = "НаименованиеНоменклатуры" тогда
НаименованиеНоменклатуры = СокрЛП(Чтение.Значение);
КонецЕсли;
КонецЦикла;
Запрос.УстановитьПараметр("Код",КодНоменклатуры);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого СтрокаРез из Результат цикл
Если СтрокаРез.Ссылка.Код = КодНоменклатуры и
СокрЛП(СтрокаРез.Ссылка.Наименование) <> НаименованиеНоменклатуры тогда
ОбъектНом = СтрокаРез.Ссылка.ПолучитьОбъект();
ОбъектНом.Наименование = НаименованиеНоменклатуры;
ОбъектНом.ОбменДанными.Загрузка = Истина;
ОбъектНом.Записать();
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры