Уважаемые, помогите со следующим:

Есть запрос не маленький в СКД, собрал его в консоли отчетов, все работает, но там я сделал временную таблицу для теста, которую планировал передавать после заполнения пользователем.
Нужно ее как то передать, внешним набором получается никак, так как соединение левое между наборами, изначально убьет весь запрос, который в корне придется переписать, а второе это гарантированно увеличит время работы отчета, так как наборы только в конце (на сколько знаю) соединяются.

Подробно:
Есть таблица ЦФО и Дата
есть такой отчет и требования, что отчет формирует обороты за некий период, а по неким ЦФО начальная дата оборотов такая же, а конечная не общая а всегда меньше, но выбирается пользователем.
Запрос есть и работает нормально, НО там сейчас временная набросанная на коленке ВТ, которая и содержит такие ЦФО и даты.

А вот как с формы ТЗ в СКД передать, чтобы её запрос уже видел эту ВТ и сработал?
---
Внешний набор в моем случае сильно затормозит отчет.
В итоге решил так:
в СКД в запросе первая временная моя, главное чтобы не ругалось
А уже ПередКомпоновкой собираю динамически запрос для сбора такой временно, дату запихиваю через ДАТАВРЕМЯ(), а ЦФО через добавление параметров на каждую строку своего.
Все отлично работает.
---
запрос она не убьет, если втыкать свои таблицы в при компоновке результата после инициализации.
---
Напишите ваше сообщение
(2)
Как втыкать? если отдельным набором то точно убьет, так как на сколько я знаю (могу ошибаться) соединение происходит между ними уже после формирования, а у меня запрос зависит от этой таблицы.
---
у меня запрос зависит от этой таблицы. - можно уточнить? изменяете текст запроса в зависимости от данных в таблице?
---
А вот как с формы ТЗ в СКД передать, чтобы её запрос уже видел эту ВТ и сработал?
Никак. Только через наборы данных.
---
вы будете смеяться но к примеру в зуп 3.1 1с для это выделело аж цельный регистр сведений ... так что
---
повторение - мать учения

https://forum.infostart.ru/forum9/topic200205/
---
Напишите ваше сообщение
(3)
не увидел ответа там на мой вопрос, если честно, может читаю на искосок :)
но формировать все заранее и передавать готовую таблицу как запрос-объект не вариант в моем случае :(
---
значит вы не умеете читать и видеть код
---
Выбрать
ВремТабл.Реквизит1,
ВремТабл.Реквизит2
Поместить МояВремТаблица
Из &ВремТабл как ВремТабл
;
/////////
---
Это не работает
ругается конструктор и потом запрос не формируется как следствие!
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(7, 2)}: Неверные параметры "втТаблицаИскл"
<<?>>&втТаблицаИскл КАК Табл
---
В СКД добавить набор данных "Объект", в него передать результат запроса и построить отчет.
---
Ну и как при этом собрать данные запросом 1 исходя из запроса объекта?
---
Я не совсем понял задачу, но есть такая фишка - при наличии отбора на данные "правого" набора которых нет в "левом" (которые не входят в условие связи), левое соединение наборов превращается во внутренее :) Более того - тип соединения наборов доступен программно (имеет тип "ТипСвязиНаборовДанныхКомпоновкиДанных " и может быть как внешним, так и внутренним) . И в описанном случае происходит его явное изменение. Но менять его программно я никогда не пробовал и не уверен даже, что это возможно. Хотя свойство "ТипСвязи" для записи доступно.
---
Вот пример как делается с помощью внешнего набора данных
---
Это не вариант для меня, получить данные без отборов как я понял (их много) потом формировать новый набор в схеме программно, туда добавлять все поля копирую из первого набора и удаляя первый набор по сути оставить набор типа Объект и потом СКД наложит фильтр по пользовательским отборам - мягко говоря не очень решение.
---
ОК, тогда формируете итоговую ТЗ и предаете в СКД для вывода как внешний набор данных , по-другому - никак
---
Внешний набор в моем случае сильно затормозит отчет.
В итоге решил так:
в СКД в запросе первая временная моя, главное чтобы не ругалось
А уже ПередКомпоновкой собираю динамически запрос для сбора такой временно, дату запихиваю через ДАТАВРЕМЯ(), а ЦФО через добавление параметров на каждую строку своего.
Все отлично работает.
---
Так это тебе еще в (3) предлагали.
---
там не то по ссылке
---
Ну как же не то?
В комментарии VmvLer именно такой подход реализован - затычка из объявления временной таблицы и последующее ее динамическое переопределение в тексте запроса СКД перед компоновкой через ОБЪЕДИНИТЬ в цикле.
---
Может глупость. Если период определен то можно передать столбец ЦФО параметром: ЦФО В (&МассивЦФО)
---
Запрос формируется исходя из данных ВТ.
Тоесть исходя из этих данных формируется куда
(21)
Сложно будет связать с конкретное цфо с конкретной датой.
---
регист конечно касается для расчета отпуска, но с вашей проблемой похоже
---
что и поражает, скд такой не плохой механизм и такая беда с этим :-)