СКД использовать параметр только в запросе
Доброго времени суток.
Делаю отчет в СКД для УПП. И столкнулся со странным поведением.
Задача (часть):
Есть заказы созданные и оплаченные в прошлом периоде (относительно периода отчета), но отгрузка в этом. Хочется в отчете увидеть все документы по таким заказам.
Задачу я решил таким образом:
Получаем список документов за период, а потом соединением получаем список заказов:
В консоли запросов я вижу что все нормально, но при построении нужная строка не попадает в отчет. Такое ощущение что СКД сам еще фильтрует по параметрам.
Прикладываю скриншоты.
Кто сталкивался, куда копать?
Делаю отчет в СКД для УПП. И столкнулся со странным поведением.
Задача (часть):
Есть заказы созданные и оплаченные в прошлом периоде (относительно периода отчета), но отгрузка в этом. Хочется в отчете увидеть все документы по таким заказам.
Задачу я решил таким образом:
Получаем список документов за период, а потом соединением получаем список заказов:
Запрос |
---|
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОбороты.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка,
ВзаиморасчетыСКонтрагентамиОбороты.Регистратор КАК РЕГИСТРАТОР,
ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата КАК Дата,
ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход КАК СуммаПродажиОборотРубль,
ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход КАК СуммаОплатаОборотРубль,
ЕСТЬNULL(ПродажиСебестоимостьОбороты.СтоимостьОборот, 0) КАК СебестоимостьПродажи,
ПродажиСебестоимостьОбороты.Номенклатура
ПОМЕСТИТЬ ДокументыИОбороты
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(, , Регистратор, ) КАК ВзаиморасчетыСКонтрагентамиОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ДоговорКонтрагента.ВидДоговора В (&ВидДоговора)) КАК ВзаиморасчетыСКонтрагентамиОбороты1
ПО ВзаиморасчетыСКонтрагентамиОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОбороты1.Сделка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(, , Регистратор, ) КАК ПродажиСебестоимостьОбороты
ПО ВзаиморасчетыСКонтрагентамиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор
И ВзаиморасчетыСКонтрагентамиОбороты.Сделка = ПродажиСебестоимостьОбороты.ЗаказПокупателя
ГДЕ
ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиОбороты.Сделка) = ТИП(Документ.ЗаказПокупателя)
Показать |
В консоли запросов я вижу что все нормально, но при построении нужная строка не попадает в отчет. Такое ощущение что СКД сам еще фильтрует по параметрам.
Прикладываю скриншоты.
Кто сталкивался, куда копать?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3)
Спасибо, даже и не знал что такое есть.
Посмотрел итоговый запрос, удивился, увидев везде проставленные периоды одинаковые. Дальше гугл подсказал что СКД всегда будет подставлять свои даты (периоды). Тот же гугл подсказал что для своих параметров нужно указывать их в фигурных скобках. Соответственно изменил запрос, указав, там где не нужен период пользователя, другие параметры в фигурных скобках:
консоль системы компоновки данных
Спасибо, даже и не знал что такое есть.
Посмотрел итоговый запрос, удивился, увидев везде проставленные периоды одинаковые. Дальше гугл подсказал что СКД всегда будет подставлять свои даты (периоды). Тот же гугл подсказал что для своих параметров нужно указывать их в фигурных скобках. Соответственно изменил запрос, указав, там где не нужен период пользователя, другие параметры в фигурных скобках:
Запрос |
---|
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОбороты.Контрагент КАК Контрагент,
ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Сделка,
ВзаиморасчетыСКонтрагентамиОбороты.Регистратор КАК РЕГИСТРАТОР,
ВзаиморасчетыСКонтрагентамиОбороты.Регистратор.Дата КАК Дата,
ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход КАК СуммаПродажиОборотРубль,
ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход КАК СуммаОплатаОборотРубль,
ЕСТЬNULL(ПродажиСебестоимостьОбороты.СтоимостьОборот, 0) КАК СебестоимостьПродажи,
ПродажиСебестоимостьОбороты.Номенклатура
ПОМЕСТИТЬ ДокументыИОбороты
ИЗ
РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты({&НачалоПериодаПустая},{&КонецПериодаПустая} , Регистратор, ) КАК ВзаиморасчетыСКонтрагентамиОбороты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Регистратор, ДоговорКонтрагента.ВидДоговора В (&ВидДоговора)) КАК ВзаиморасчетыСКонтрагентамиОбороты1
ПО ВзаиморасчетыСКонтрагентамиОбороты.Сделка = ВзаиморасчетыСКонтрагентамиОбороты1.Сделка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты({&НачалоПериодаПустая},{&КонецПериодаПустая}, Регистратор, ) КАК ПродажиСебестоимостьОбороты
ПО ВзаиморасчетыСКонтрагентамиОбороты.Регистратор = ПродажиСебестоимостьОбороты.Регистратор
И ВзаиморасчетыСКонтрагентамиОбороты.Сделка = ПродажиСебестоимостьОбороты.ЗаказПокупателя
ГДЕ
ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиОбороты.Сделка) = ТИП(Документ.ЗаказПокупателя)
;
Показать |
(4)
Конструкции в фигурных скобках (это т.н. расширение языка запросов для СКД, или препроцессор языка запросов) СКД анализирует перед выполнением запроса и на их место, в зависимости от контекста выполнения отчета, подставляет реальные конструкции языка запросов. В приведенном примере параметры в фигурных скобках - это т.н. "мягкие" параметры. СКД вставит их в текст запроса, если у параметра будет установлено свойство Использование (если параметр выведен в Пользовательские настройки, то это флажок рядом с полем параметра). В противном случае этого параметра в тексте исполняемого запроса не будет.
Тот же гугл подсказал что для своих параметров нужно указывать их в фигурных скобках.
Точнее будет так.
Конструкции в фигурных скобках (это т.н. расширение языка запросов для СКД, или препроцессор языка запросов) СКД анализирует перед выполнением запроса и на их место, в зависимости от контекста выполнения отчета, подставляет реальные конструкции языка запросов. В приведенном примере параметры в фигурных скобках - это т.н. "мягкие" параметры. СКД вставит их в текст запроса, если у параметра будет установлено свойство Использование (если параметр выведен в Пользовательские настройки, то это флажок рядом с полем параметра). В противном случае этого параметра в тексте исполняемого запроса не будет.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот