Ошибка работы с временными таблицами в построителе

Форум 1С: Одинэс.Ру

Найти!

Ошибка работы с временными таблицами в построителе

Lexusss
26.05.2009 - 13:23
Имеем в 8.1.13.41 (сокращено для упрощения)
ТЗДней = Новый ТаблицаЗначений;
ТЗДней.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата"));
ТЗДней.Добавить().Дата = ТекущаяДата();
 
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.Параметры.Вставить("ТЗ", ТЗДней);
 
ПостроительОтчета.Текст =
"
|ВЫБРАТЬ ТЗ.Дата
|ПОМЕСТИТЬ Дни
|ИЗ &ТЗ КАК ТЗ
|;
|ВЫБРАТЬ * ИЗ Дни";
Выдает ошибку "Неверные параметры "ТЗ" ИЗ <<?>>&ТЗ Как ТЗ". Причем такая же фигня в запросе работает отлично.
Собственно вопрос: кто сталкивался, как обойти?
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
21.11.2024 - 13:15
Смотри также:
Очищаются реквизиты в БП при повторной загрузке изменений из УТ
Почему не могу тестовое форме отредактировать?
v8: как идентифицировать уникально пользователя

Re: Ошибка работы с временными таблицами в построителе

roma n
1 - 26.05.2009 - 13:59
ммм... а подсунуть построителю ТЗ в качестве источника данных?

Re: Ошибка работы с временными таблицами в построителе

Lexusss
2 - 26.05.2009 - 14:04
Мне эта таблица в дальнейшем нужна много раз при формировании след временных таблиц. Сама она очень простая.
Всего в запросе 7 временных таблиц и финишный запрос для Универсального отчета.

Re: Ошибка работы с временными таблицами в построителе

roma n
3 - 26.05.2009 - 14:25
(2) а что это меняет?
Подсовываешь вместо параметра описание источника данных и точно так же во временную
ЗЫ не проверял,-просто мысль

Re: Ошибка работы с временными таблицами в построителе

Gloom
4 - 26.05.2009 - 15:19
У меня не получилось в построителе создать временную таблицу из параметра, а вот если таблица создаётся на основе запроса к таблицам БД, то пожалуйста:
ПостроительОтчета.Текст =
"
|ВЫБРАТЬ ПЕРВЫЕ 1 Д.Дата КАК Дата
|ПОМЕСТИТЬ Дни
|ИЗ Документ.Д КАК Д
|;
|ВЫБРАТЬ * ИЗ Дни";

Re: Ошибка работы с временными таблицами в построителе

Lexusss
5 - 27.05.2009 - 05:19
(3) Вроде как тип ОписаниеИсточникаДанных предназначен только для заполнения поля ИсточникДанных. Ту же фигню выдает если
ПостроительОтчета.Параметры.Вставить("ТЗ", Новый ОписаниеИсточникаДанных(ТЗДней));
(4) Так я тоже умею.
ЗЫ: Видимо все же придется подсовывать построителю в качестве источника данных подсовывать результат запроса. Жестко потеряю в производительности из-за отсутствия предварительных отборов, но другого выхода пока не вижу...
ЗЗЫ: И менеджер временных таблиц в построитель не воткнешь. Сволочи...

Интересные темы

odines.ru
21.11.2024 - 13:15
Смотри также:
V8: Табличная часть документа
Временные таблицы
Правила обмена

Re: Ошибка работы с временными таблицами в построителе

roma n
6 - 27.05.2009 - 05:24
менеджер временных таблиц втыкается в запрос построителя. Но вчера попробовал мельком (0) -наличие МВТ не помогло

Re: Ошибка работы с временными таблицами в построителе

Lexusss
7 - 27.05.2009 - 05:31
(6) Каким образом?
Или из построителя получить запрос, а затем его нужным образом подкорректировать, выполнить и подсунить обратно построителю в виде источника данных! Так сейчас попробую..

Re: Ошибка работы с временными таблицами в построителе

Lexusss
8 - 27.05.2009 - 08:09
Попробовал сделать
Запрос = Построитель.ПолучитьЗапрос();
Запрос.Выполнить()
дает ту же ошибку.
Хотя если сделать
ДругойЗапрос = Новый Запрос(Запрос.Текст);
Для каждого КлючИЗначение Из Запрос.Параметры Цикл ДругойЗапрос.Параметры.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
КонецЦикла;
РезультатЗапроса = ДругойЗапрос.Выполнить();
все выполняется!!! Попробую сейчас этот результат подпихнуть обратно в построитель...
ЗЫ: Техподдержка 1С пока молчит...

Re: Ошибка работы с временными таблицами в построителе

roma n
9 - 27.05.2009 - 14:04
ПостроительОтчета.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗДней);
ПостроительОтчета.Текст = "ВЫБРАТЬ
                          | *
                          |ПОМЕСТИТЬ Дни
                          |;
                          |
                          |////////////////////////////////////////////////////////////////////////////////
                          |ВЫБРАТЬ
                          | *
                          |ИЗ
                          | Дни КАК Дни";
ПостроительОтчета.Выполнить();
======
нормально отрабатывает. Сходит с ума на методе Вывести(). Кричит не ввижу "ВЫБРАТЬ"

Re: Ошибка работы с временными таблицами в построителе

roma n
10 - 27.05.2009 - 14:08
+(9) остановка по ошибке в этом месте: ПостроительОтчета.ПолучитьЗапрос().Текст = ""
О_о

Re: Ошибка работы с временными таблицами в построителе

roma n
11 - 27.05.2009 - 14:16
Ну не идиот ли? объявление источника прибивает запрос... В конец запарился с попытками заставить построитель это есть...

Re: Ошибка работы с временными таблицами в построителе

roma n
12 - 27.05.2009 - 14:36
В качестве частного решения для подумать: скормить построителю ТЗ - результат финишного запроса? Правда условия все будут отсекаться уже потом. Или программно читать отборы построителя и программно же рисовать условия на промежуточные запросы...

Re: Ошибка работы с временными таблицами в построителе

Lexusss
13 - 27.05.2009 - 15:10
(10) Я ж в 8 уже описал, как пытаюсь эту проблему обойти:
1. Получаю запрос из построителя с ненужным первым запросом к временной таблице (там уже получаются применены предварительные отборы). Ненужный запрос подбирается так, чтобы он нормально потреблялся построителем, при том возвращая нужный набор полей.
2. Корректирую текст запроса с ненужным первым запросом.
3. Переношу текст и параметры полученного запроса в новый объект запрос. Если использовать запрос из построителя, вылетает тот же глюк. Видимо, из построителя мы получаем не натуральный запрос, а лишь еще одну оболочку над построителем (из него чужие уши так и торчат).
4. Результат этого нового запроса обратно подсовываю построителю.
5. Возвращаю настройки на место.
Так оно вроде дает нужный результат, хотя Универсальный отчет из УТ такие извращения не похватывает. Не стал пока разбираться что у меня не так, отложил до решения вопроса техподдержкой.

Re: Ошибка работы с временными таблицами в построителе

Lexusss
14 - 28.05.2009 - 05:02
Пришел ответ из 1С, что такая конструкция не поддерживается в построителе :-(
К списку тем 1 > К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Web-сервисы. Возврат массива чисел Проблема при вводе остатков в 8.1 »
© 2009 Форум 1С: Одинэс.Ру