&НаСервере
Процедура КомандаВыполнитьНаСервере()
ИмяФайла = "d:\test.xml";
Запрос = Новый Запрос("ВЫБРАТЬ
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Ссылка КАК Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ЭтоГруппа = ЛОЖЬ");
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла,"UTF-8");
ВыборкаРезультата = Запрос.Выполнить().Выгрузить();
ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура");
Для каждого Выборка Из ВыборкаРезультата Цикл
ЗаписатьXML(ЗаписьXML, Выборка.Номенклатура.ПолучитьОбъект());
КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
КонецПроцедуры
Результат = Запрос.Выполнить().Выгрузить(); для чего эта строчка?
если дальше по коду есть выборка: ВыборкаРезультата = Запрос.Выполнить().Выгрузить();
только не понял почему переменная называется Выборка, а Вы делаете выгрузку в ТЗ, будет правильнее использовать метод Выбрать();
(1) metatron, да эта строчка была лишняя. Также предлагаю вариант через выборку, либо если нужно, то с возможностью обхода через ТаблицуЗначений.
&НаСервере
Процедура КомандаВыполнитьНаСервере()
ИмяФайла = "d:\test.xml";
Запрос = Новый Запрос("ВЫБРАТЬ
| Номенклатура.Код КАК Код,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Ссылка КАК Номенклатура
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ЭтоГруппа = ЛОЖЬ");
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла,"UTF-8");
ЗаписьXML.ЗаписатьНачалоЭлемента("Номенклатура");
ВыборкаРезультата = Запрос.Выполнить().Выбрать();
Пока ВыборкаРезультата.Следующий() Цикл
ЗаписатьXML(ЗаписьXML, ВыборкаРезультата.Номенклатура.ПолучитьОбъект());
КонецЦикла;
//Вариант через ТаблицуЗначений
//ТабРезультаты = Запрос.Выполнить().Выгрузить();
//
//Для каждого СтрокаТаб Из ТабРезультаты Цикл
// ЗаписатьXML(ЗаписьXML, СтрокаТаб.Номенклатура.ПолучитьОбъект());
//КонецЦикла;
ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
КонецПроцедуры
спасибо за совет !
приму к сведению
если у вас будут еще идеи или другие варианты
буду раз услышать )
Зачем вам поля Код, наименование, артикул в запросе, если они не используются потом нигде?
Зачем писать ЭтоГруппа = ЛОЖЬ, у нее составной тип?
Тут я не уверен: зачем в ЗаписатьXML писать именно СправочникОбъект, ссылка не пройдет? Это же жрет лишний раз оперативку.
(4) Farovsky, данный код в виде примера, а то как дальше вы будете его использовать илм корректировать .... только ваша фантазия)
(4) Если использовать только ссылку, то в файл попадут только данные типа:
<Ref>64b55012-7343-11ea-bb98-00155d320304</Ref>
а из объекта все значения реквизитов. А код, наименование, артикул действительно лишние в данном случае. А вот условие ЭтоГруппа=Ложь нужно, чтобы выгрузились только элементы справочника.
(6) SanchoD, а чем хуже Не ЭтоГруппа. ЭтоГруппа = ложь пишут в случаях, когда тип составной.