Имя: Пароль:
1C
1С v8
Временные таблицы в запросе универсального отчета
0 толькодлявопросов
 
12.12.17
14:02
Добрый день, разрабатывая отчет по шаблону универсального появилась необходимость использовать временные таблицы в запросе в построителе. Но если это делать, то при своих стандартных группировках он работает не корректно (не так как я ожидаю). И поэтому я решил попробовать сначала одним запросом формировать таблицу значений, а потом ее передавать как параметр в основной запрос, но так тоже ошибка -
    {(10, 2)}: Неверные параметры "ВнешняяТаблицаИсточник"
    <<?>>&ВнешняяТаблицаИсточник КАК ВнешняяТаблица
В
    ИЗ
        &ВнешняяТаблицаИсточник КАК ВнешняяТаблица
    ;
Можно ли в построителе для универсального отчета передать запросу свою таблицу значений? Или как делать временные таблицы в таком отчете, чтобы функционал универсального отчета их не трогал и не группировал для своих нужд.
1 youalex
 
12.12.17
15:17
Если таблица не большая и нет(мало) ссылочных данных, можно из значений ТЗ сгенерить текст через ОБЪЕДИНИТЬ ВСЕ.
Или, можно наоборот, получить результат построителя, использовать его в своем запросе, а потом результат своего запроса впихнуть в построитель как источник данных
2 толькодлявопросов
 
12.12.17
15:54
(1) Ну смотрите, у меня есть таблица, из которой потом (уже в основном запросе) левым соединением должны браться определенные колонки, то есть ОБЪЕДИНИТЬ ВСЕ, насколько я понимаю мне не подойдет.

    Или, можно наоборот, получить результат построителя,
    использовать его в своем запросе, а потом результат
    своего запроса впихнуть в построитель как источник
    данных.

не понятно, особенно конец
3 youalex
 
12.12.17
20:42
(2)
1. У тебя есть таблица, например, вида (Колонка1, Колонка2) со строками (5,7), (9,5). И есть построитель со своим текстом.
Теоретически,ты  можешь из своей таблицы динамически составить запрос типа
"ВЫБРАТЬ 5 КАК Колонка1, 7 КАК Колонка2  
ПОМЕСТИТЬ ВТ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ 9, 5"

Потом этот текст запроса пришпандорить сверху текста построителя,не забыв точку с запятой.  Т.о. построитель будет "знать" о твоей вт.

Понятно, если у тебя миллион строк, это не самый лучший метод, к тому же 1с не дает указывать ссылки напрямую в тексте,тут если только извращаться с параметрами запроса, рискуя налететь на ограничение скуля.

По второму - кури в строну Запрос = Построитель.ПолучитьЗапрос();
Запрос.Текст = Запрос.Текст+ "какие-то там мунупуляции"
РезультатЗапроса = Запрос.Выполнить();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатЗапроса);
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn