|
ТабличныйДокумент в 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) а вот так попробуй
ПЗ = Новый ПостроительЗапроса; ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область()); ТЗ = ПЗ.Результат.Выгрузить(); |
|||
|
4
first_may
04.10.26
✎
11:16
|
неее..
ошибка тут //Задаем источник данных и присваиваем ему псевдоним (например, "Данные") ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область(), "Данные"); тут один параметр ОписаниеИсточникаДанных (DataSourceDescription) Свойства: ИсточникДанных (DataSource) |
|||
|
5
first_may
04.10.26
✎
14:20
|
вообщем разобрался..
вот код ВременныйФайл = "....\тест.mxl"; ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ВременныйФайл); ПЗ = Новый ПостроительЗапроса; ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());//передаем ТЗ ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять; ПЗ.ЗаполнитьНастройки(); //ПЗ.Текст = "ВЫБРАТЬ * ИЗ Т"; ПЗ.Выполнить(); ТЗ = ПЗ.Результат.Выгрузить(); 1 сделал отчет 2 сохранил его в mxl 3 открыл и убрал из него шапку, оставив только табличную часть 4 читаю в от так и в ТЗ уже результат осталось ТЗ в XML и все.. моя ошибка была в том, что пробовал прочитать отчет с всеми заголовками, отборами, параметрами и тд.. вообщем все СПС за помощь |
| Форум | Правила | Описание | Секции | Поиск |