Период в запросе на СКД

1. devlog 1 16.05.25 13:36 Сейчас в теме
Составил запрос в СКД, столкнулся с проблемой, что после нажатия кнопки в отчете "Сформировать" - поля с периодом в отчете очищаются и результат выводится без учёта заданного периода. Тот же запрос в консоли запросов отрабатывает норм и выдаёт список с отбором по периоду. Помогите найти ошибку
ВЫБРАТЬ
	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
	ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
	ОтчетПроизводстваЗаСменуПродукция.НомерСтроки КАК НомерСтроки,
	ОтчетПроизводстваЗаСменуПродукция.Номенклатура КАК Продукция,
	ОтчетПроизводстваЗаСменуПродукция.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	ОтчетПроизводстваЗаСменуПродукция.Количество КАК Количество,
	ОтчетПроизводстваЗаСменуПродукция.Номенклатура.Код КАК Артикул,
	ОтчетПроизводстваЗаСменуПродукция.Ссылка КАК Документ
ИЗ
	Документ.ОтчетПроизводстваЗаСмену.Продукция КАК ОтчетПроизводстваЗаСменуПродукция
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
		ПО ОтчетПроизводстваЗаСменуПродукция.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
	ОтчетПроизводстваЗаСменуПродукция.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. yispepotri 16.05.25 13:42 Сейчас в теме
(1) посмотреть код ПриКомпоновкеРезультата, возможно там как то не правильно параметры передаются
2. VmvLer 16.05.25 13:41 Сейчас в теме
без скрина параметров СКД говорить не о чем.
4. devlog 1 16.05.25 13:55 Сейчас в теме
(2) Параметр "Период" не пон откуда взялся, с ним вобще отчет не формирует, поэтому я добавил параметр "Период1", с ним формирует с ошибкой (без учёта периода)
Прикрепленные файлы:
5. yispepotri 16.05.25 14:08 Сейчас в теме
(4) так удалите не нужный параметр, и возможно в отчет как раз выводится этот не нужный параметр, а Период1 нет, поэтому и не срабатывает.

в настройка посмотреть что у параметра стоит галочки Включить в польз. настройки
Прикрепленные файлы:
6. devlog 1 16.05.25 14:15 Сейчас в теме
(5) я знаю. Ненужный параметр не выводится. Выводится только нужный Период1
Мне кажется дело в присоединяемом РС, без него период работает должным образом, как только присоединяю РС - перестает. Не могу понять что надо в конструкторе добавить по этой теме.
7. yispepotri 16.05.25 14:18 Сейчас в теме
(6) посмотреть код, про который писал в 3 комменте
8. RustamZz 16.05.25 14:20 Сейчас в теме
(6)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних
Использует по умолчанию &Период
9. devlog 1 16.05.25 14:33 Сейчас в теме
(8) Ок, если его использую, тогда отчет не формируется и пишет "Недопустимое значение Параметр № 1" то есть не может типы данных сопоставить, хотя везде дата
12. RustamZz 16.05.25 16:16 Сейчас в теме
(9) Надо &ДатаНачала или &ДатаОкончания в фигурных скобках
14. devlog 1 16.05.25 16:21 Сейчас в теме
(12) Пробовал, пишет синтаксическая ошибка
10. Snoocker 16.05.25 15:23 Сейчас в теме
Если правильно помню, то параметр Период автоматически добавляется при добавлении, попробуйте на закладке параметры указать выражение для Периода "&Период1.ДатаОкончания"
11. devlog 1 16.05.25 16:11 Сейчас в теме
(10) выше прислал скрин, что так и делаю
13. booksfill 16.05.25 16:19 Сейчас в теме
(1)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних


А. Кажется, запрос не верен в принципе, т.к. сперва (формально) выполняются все соединения, а потом уже применяются условия:
РегистрСведений.ЦеныНоменклатуры.СрезПоследних
Отберет вам цены на текущую дату.

Т.е. вы можете на дату документа, скажем 2013г, получить цену на май 2015.

Б. Еще, вы зачем-то тянете номенклатуру из цен, коей там вообще может и не быть, даже не проверяя на null.
Как реперный показатель, что цены нет, что-ли?

В. Если я не проглядел, то вы вдобавок еще и отбора по типу цен не делаете, т.е. запросто можете получить для одной номенклатуры десяток цен.

Варианта видится 3 (во всех не забыть про отбор по типу цен)
- отключить автозаполнение, возможно СКД смирится и перестанет пытаться исправить запрос.

- создать монстрика:
Отбираете ном-ру и хар-ку из документа с отбором по вашим датам, помещаете в ВТ1
Отбираете цену из РС, согласно полученной номенклатуре и хар-ке (условие в скобках), помещаете в ВТ2
Собираете из ВТ1 и ВТ 2 нужный запрос.
Получаете, как и хотели, монстра "как в консоли".

Ну, или ладно, будем считать, что у вас задача - оценить по актуальным ценам. Тогда все ОК.

- составить запрос с учетом цен на дату док-та (гуглите "курс валют на дату документа")

P.S. Послушайтесь уже совета в 3 - посмотрите настоящий текст запроса СКД в какой-нибудь консоли.
15. devlog 1 16.05.25 16:24 Сейчас в теме
(13) Да, мне надо по актуальным ценам, то есть док 2013 года по цене, установленной в 2025 году это мне подойдет. Отбор по виду цен я делаю на вкладке Отбор, ещё есть отбор что док проведен, отборы работают. На вкладке Отбор я так же могу задать отбор по Дате больше или равно-меньше или равно и получить желаемый результат с периодом. Но я хочу понять что не так со стандартным периодом и сделать норм.
16. booksfill 19.05.25 09:38 Сейчас в теме
(15) Скорее-всего, у вас просто путаница с наименованием стандартного периода и наименованием периода в срезе последних. Видел, что вы его потом поменяли, но ...
Как вариант сохраните схему в xml и загрузите в новый отчет, возможно что-то с кешем.

(15)
Отбор по виду цен я делаю на вкладке Отбор

Не надо так.


(15)
Но я хочу понять что не так со стандартным периодом и сделать норм.


Делайте вариант "монстрик".
Стандартный период вы верно назвали так, чтобы он не совпадал с именем периода в срезе последних,
можете для верности назвать его СтдПериод.

P.S. Посмотрите в консоли какой у вас итоговый запрос и положите сюда, также сделайте вывод всех отборов и параметров в отчет и тоже сюда.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот