СКД: как передать параметры в запрос из настроек отчета? #454859


#0 by DSSS
Всем доброго дня! Пишу отчет на СКД, запрос выполняю в модуле формы, потом передаю таблицу значений полученную этим запросом в СКД через набор данных. Вот текст запроса: ВЫБРАТЬ РАЗЛИЧНЫЕ Чтобы отчет сформировался с нужными отборами, я устанавливаю их в настройках отчета и отчет формируется правильно. Вопрос в следующем: получается, что сначала у меня исполняется запрос без параметров и на это уходит намного больше времени, чем если бы в текст запроса были переданы эти параметры. Подскажите, как параметры отборов отчета передать в запрос, учитывая, что заранее неизвестно, какие отборы установит пользователь? Пока только приходит в голову писать модуле перед исполнеем запроса примерно следующее: Запрос.УстановитьПараметр("КонецПериода",ПараметрЗапроса); Запрос.Текст = Запрос.Текст + какой-то текст для запроса. Однако при этом нужно учитывать каждое поле запроса, тип сравнения, тип значений и пр. Так я запарюсь все возможные варианты перебирать.. Может существует более простой способ решения такой проблемы, подскажите, кто в курсе?
#1 by Defender aka LINN
А что мешает отчет на основании запроса делать?
#2 by DSSS
Не понял малость вопроса. Я и делаю отчет на основании запроса, только он долго исполняется, потомучто без отборов. мне нужно эти отборы в запрос передать, чтобы быстрее работало.
#3 by Stim
он тебя правильно спросил. Зачем вот это: "Пишу отчет на СКД, запрос выполняю в модуле формы" ? Почему нельзя запрос выполнять в самой СКД?
#4 by DSSS
Мешает ряд особенностей ведения учета. Я сначала получаю таблицу значений, потом работаю с ней, в этой таблице пересчитывается себестоимость. Это окончательный вариант, по другому не получается. Конечно намного логичней все в скд сделать, но в этом отчете мне приходится работать именно с набором данных.
#5 by Defender aka LINN
Тогда жии с этим. Или для запроса сделай отдельную схему, копируй туда отбор и получай таблицу отфильтрованную.
#6 by Guk
а что мешает прочитать значения отбора и запихнуть их в первоначальный запрос?...
#7 by Defender aka LINN
Заколебешься.
#8 by mikeA
Первый запрос делай на компоновке, у второго запроса в компоновке устанавливай параметры как у первого.
#9 by Stim
тогда проще создать отчет вручную. СКД для того и предназначен, чтобы брать всю рутинную работу на себя.. а автор хочет скрестить ноги с автомобилем..
#10 by Guk
да ладно...
#11 by Defender aka LINN
такой вот, например. Устанешь :)
#12 by Guk
вдруг у него отбор попроще ;)...
#13 by Defender aka LINN
Ну, мы ж частные случаи не решаем :)
#14 by DSSS
Сложней намного. привел только часть запроса..
#15 by mikeA
И что оно автоматом не обходится? Ну типа Для каждого ЭлементНастройки из КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы Цикл...
#16 by Defender aka LINN
Обходится. Только что ты с ним делать будешь?
#17 by mikeA
Скопировать в настройки компоновки второго запроса.
#18 by Defender aka LINN
И давно у ЗАПРОСА появились настройки компоновки?
#19 by mikeA
Я же говорю , тот запрос тоже на компоновке делать, только результат не выводить, а использовать его данные для обработки.
#20 by Defender aka LINN
См. :)
#21 by mikeA
опаньки... ну, чукча - не читатель :)
#22 by Freddy
1. Юзай запрос в компоновщике, с которым связаны визуальные элементы. 2. Но в запрос добавь поля, которые расчитываешь. 3. Закрой по ним отбор. 4. Получи результат запроса и расчитай таблицу. 5. используй еще один компоновщик, который настрой на таблицу. 6. перекопируй настройки из первого компоновщика во второй... 7. сформируй и выведи результат вторым компоновщиком... Единственный минус нет отборов по расчитываемым полям...
#23 by detec
Весь топик подробно не осилил. Варианта 2. 1) Сделать в СКД тип набор данных - объект, и в него запихнуть объект - таблицу значений. Минусы тут уже описали плюс некоторые СУБД, в частности, Постргрес, ужасно тормозят на этой операции. 2) Написать сложный, поэтапный пакетный запрос. Не самый простой путь, но реальный. Я так примитивную обработку данных в коде 1С после прежних разработчиков почти полностью переложил на запрос в СКД.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С