Имя: Пароль:
1C
 
ТабличныйДокумент в xml
☑
0 first_may
 
03.10.26
✎
21:44
Добрый.

Подскажите пож, как можно сделать универсальный алгоритм выгрузки отчета в xml?


понимаю, что в инете масса вариантов написано, но не работают..

например

ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());//передаем ТЗ
ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ЗаполнитьНастройки();
ПЗ.Выполнить();
ТЗ = ПЗ.Результат.Выгрузить();


тут ошибка в последней строке

Ошибка при получении значения атрибута контекста (Результат)
{Рабочее ОбщаяФорма.ФормаОтчета.Форма(379)}:ТЗ = ПЗ.Результат.Выгрузить();
{Рабочее ОбщаяФорма.ФормаОтчета.Форма(452)}:Расш_ТестПослеНаСервере();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
1 Kongo2019
 
03.10.26
✎
23:10
XML - это структурированный текстовый файл, наверное нужно понимать какой структуры должен быть этот файл что бы в него что то выгрузить.

Если по коду.
ПостроительЗапроса инструмент для работы с запросами к базе данных. Когда вы передаёте ему в качестве источника данных ТабДок.Область(), он не может самостоятельно придумать запрос, потому что не знает, какие поля из этой области нужно выбрать и как их назвать. Без явного текста запроса он не может выполнить Выполнить(), что и приводит к ошибке при попытке получить Результат.

Попробуй
ПЗ = Новый ПостроительОтчета;
2 Kongo2019
 
03.10.26
✎
23:15
О, вот так работает
ПЗ = Новый ПостроительЗапроса;

//Задаем источник данных и присваиваем ему псевдоним (например, "Данные")
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область(), "Данные");

ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ЗаполнитьНастройки();

//ОБЯЗАТЕЛЬНО задаем текст запроса, используя псевдоним источника
//Вот этого как раз и не хватало
ПЗ.Текст = "ВЫБРАТЬ * ИЗ Данные";

//Теперь выполнение пройдет успешно
ПЗ.Выполнить();

//Получаем результат
ТЗ = ПЗ.Результат.Выгрузить();
3 RomanYS
 
03.10.26
✎
23:43
(2) а вот так попробуй
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());
ТЗ = ПЗ.Результат.Выгрузить();
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн