Составил запрос в СКД, столкнулся с проблемой, что после нажатия кнопки в отчете "Сформировать" - поля с периодом в отчете очищаются и результат выводится без учёта заданного периода. Тот же запрос в консоли запросов отрабатывает норм и выдаёт список с отбором по периоду. Помогите найти ошибку
ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ОтчетПроизводстваЗаСменуПродукция.НомерСтроки КАК НомерСтроки,
ОтчетПроизводстваЗаСменуПродукция.Номенклатура КАК Продукция,
ОтчетПроизводстваЗаСменуПродукция.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ОтчетПроизводстваЗаСменуПродукция.Количество КАК Количество,
ОтчетПроизводстваЗаСменуПродукция.Номенклатура.Код КАК Артикул,
ОтчетПроизводстваЗаСменуПродукция.Ссылка КАК Документ
ИЗ
Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ПО ОтчетПроизводстваЗаСменуПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
А. Кажется, запрос не верен в принципе, т.к. сперва (формально) выполняются все соединения, а потом уже применяются условия:
РегистрСведений.ЦеныНоменклатуры.СрезПоследних
Отберет вам цены на текущую дату.
Т.е. вы можете на дату документа, скажем 2013г, получить цену на май 2015.
Б. Еще, вы зачем-то тянете номенклатуру из цен, коей там вообще может и не быть, даже не проверяя на null.
Как реперный показатель, что цены нет, что-ли?
В. Если я не проглядел, то вы вдобавок еще и отбора по типу цен не делаете, т.е. запросто можете получить для одной номенклатуры десяток цен.
Варианта видится 3 (во всех не забыть про отбор по типу цен)
- отключить автозаполнение, возможно СКД смирится и перестанет пытаться исправить запрос.
- создать монстрика:
Отбираете ном-ру и хар-ку из документа с отбором по вашим датам, помещаете в ВТ1
Отбираете цену из РС, согласно полученной номенклатуре и хар-ке (условие в скобках), помещаете в ВТ2
Собираете из ВТ1 и ВТ 2 нужный запрос.
Получаете, как и хотели, монстра "как в консоли".
Ну, или ладно, будем считать, что у вас задача - оценить по актуальным ценам. Тогда все ОК.
- составить запрос с учетом цен на дату док-та (гуглите "курс валют на дату документа")
P.S. Послушайтесь уже совета в 3 - посмотрите настоящий текст запроса СКД в какой-нибудь консоли.
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних
А. Кажется, запрос не верен в принципе, т.к. сперва (формально) выполняются все соединения, а потом уже применяются условия:
РегистрСведений.ЦеныНоменклатуры.СрезПоследних
Отберет вам цены на текущую дату.
Т.е. вы можете на дату документа, скажем 2013г, получить цену на май 2015.
Б. Еще, вы зачем-то тянете номенклатуру из цен, коей там вообще может и не быть, даже не проверяя на null.
Как реперный показатель, что цены нет, что-ли?
В. Если я не проглядел, то вы вдобавок еще и отбора по типу цен не делаете, т.е. запросто можете получить для одной номенклатуры десяток цен.
Варианта видится 3 (во всех не забыть про отбор по типу цен)
- отключить автозаполнение, возможно СКД смирится и перестанет пытаться исправить запрос.
- создать монстрика:
Отбираете ном-ру и хар-ку из документа с отбором по вашим датам, помещаете в ВТ1
Отбираете цену из РС, согласно полученной номенклатуре и хар-ке (условие в скобках), помещаете в ВТ2
Собираете из ВТ1 и ВТ 2 нужный запрос.
Получаете, как и хотели, монстра "как в консоли".
Ну, или ладно, будем считать, что у вас задача - оценить по актуальным ценам. Тогда все ОК.
- составить запрос с учетом цен на дату док-та (гуглите "курс валют на дату документа")
P.S. Послушайтесь уже совета в 3 - посмотрите настоящий текст запроса СКД в какой-нибудь консоли.
(13) Да, мне надо по актуальным ценам, то есть док 2013 года по цене, установленной в 2025 году это мне подойдет. Отбор по виду цен я делаю на вкладке Отбор, ещё есть отбор что док проведен, отборы работают. На вкладке Отбор я так же могу задать отбор по Дате больше или равно-меньше или равно и получить желаемый результат с периодом. Но я хочу понять что не так со стандартным периодом и сделать норм.
(15) Скорее-всего, у вас просто путаница с наименованием стандартного периода и наименованием периода в срезе последних. Видел, что вы его потом поменяли, но ...
Как вариант сохраните схему в xml и загрузите в новый отчет, возможно что-то с кешем.
(15)
Не надо так.
(15)
Делайте вариант "монстрик".
Стандартный период вы верно назвали так, чтобы он не совпадал с именем периода в срезе последних,
можете для верности назвать его СтдПериод.
P.S. Посмотрите в консоли какой у вас итоговый запрос и положите сюда, также сделайте вывод всех отборов и параметров в отчет и тоже сюда.
Как вариант сохраните схему в xml и загрузите в новый отчет, возможно что-то с кешем.
(15)
Отбор по виду цен я делаю на вкладке Отбор
Не надо так.
(15)
Но я хочу понять что не так со стандартным периодом и сделать норм.
Делайте вариант "монстрик".
Стандартный период вы верно назвали так, чтобы он не совпадал с именем периода в срезе последних,
можете для верности назвать его СтдПериод.
P.S. Посмотрите в консоли какой у вас итоговый запрос и положите сюда, также сделайте вывод всех отборов и параметров в отчет и тоже сюда.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот