Как получить из регистра сведений цену на дату заказов

1. jimli 7 18.11.21 13:38 Сейчас в теме
Есть цель проанализировать конечные цены продажи покупателям
Завели новый прайс-лист (ПЛ), цены обновляются часто.
Нужно на заказы вывести цену продажи и цену на момент создания заказа с нового ПЛ.
Как получить цены на даты заказов? В примере написала ВЫБРАТЬ ПЕРВЫЕ 10, на самом деле заказов больше.
Пробовала вместо &ДатаЗаказаКлиентаТовары подставить ЗаказКлиентаТовары.Ссылка.Дата - пишет в построителе запроса "поле не найдено".
ВЫБРАТЬ ПЕРВЫЕ 10
	ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаНовыйПрайс,
	ЗаказКлиентаТовары.СуммаСНДС / ЗаказКлиентаТовары.Количество КАК ФактическаяЦенаПродажи
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЗаказаКлиентаТовары, ) КАК ЦеныНоменклатурыСрезПоследних
		ПО ЗаказКлиентаТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
			И ЗаказКлиентаТовары.Ссылка = ЦеныНоменклатурыСрезПоследних.ВидЦены
Показать

то есть так не работает, хоть и хотелось бы...
ВЫБРАТЬ ПЕРВЫЕ 10
	ЗаказКлиентаТовары.Номенклатура КАК Номенклатура,
	ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаНовыйПрайс,
	ЗаказКлиентаТовары.СуммаСНДС / ЗаказКлиентаТовары.Количество КАК ФактическаяЦенаПродажи
ИЗ
	Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(ЗаказКлиентаТовары.Ссылка.Дата, ) КАК ЦеныНоменклатурыСрезПоследних
		ПО ЗаказКлиентаТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
			И ЗаказКлиентаТовары.Ссылка = ЦеныНоменклатурыСрезПоследних.ВидЦены
Показать
По теме из базы знаний
Найденные решения
2. user1278383 5 18.11.21 13:53 Сейчас в теме
7. -AI- 18.11.21 15:05 Сейчас в теме
(6) форум не даёт редактировать, в предыдущем сообщении есть ошибка - не указан параметр "ДЕНЬ" в функции НачалоПериода

но я сделал готовый конечный запрос:
ВЫБРАТЬ
	Товары.Ссылка,
	Товары.Номенклатура,
	Товары.ВидЦены,
	Товары.Цена КАК ФактическаяЦена,
	Цены.Цена КАК ПравильнаяЦена
ИЗ
	(ВЫБРАТЬ
		Товары.Номенклатура,
		Товары.ВидЦены,
		НачалоПериода(Товары.Ссылка.Дата, ДЕНЬ) КАК Дата,
		МАКСИМУМ(Цены.Период) КАК Период
	ИЗ
		Документ.ЗаказКлиента.Товары КАК Товары
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		РегистрСведений.ЦеныНоменклатуры КАК Цены
			ПО Цены.Номенклатура = Товары.Номенклатура
			 И Цены.ВидЦены = Товары.ВидЦены
			 И Цены.Период <= Товары.Ссылка.Дата
	СГРУППИРОВАТЬ ПО
		Товары.Номенклатура,
		Товары.ВидЦены,
		НачалоПериода(Товары.Ссылка.Дата, ДЕНЬ)) КАК Периоды
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	РегистрСведений.ЦеныНоменклатуры КАК Цены
		ПО Цены.Номенклатура = Периоды.Номенклатура
		 И Цены.ВидЦены = Периоды.ВидЦены
		 И Цены.Период = Периоды.Период
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	Документ.ЗаказКлиента.Товары КАК Товары
		ПО Товары.Номенклатура = Периоды.Номенклатура
		 И Товары.ВидЦены = Периоды.ВидЦены
		 И НачалоПериода(Товары.Ссылка.Дата, ДЕНЬ) = Периоды.Дата
ГДЕ
	НЕ Товары.Цена=Цены.Цена
УПОРЯДОЧИТЬ ПО
	Товары.Ссылка.Дата УБЫВ
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1278383 5 18.11.21 13:53 Сейчас в теме
3. jimli 7 18.11.21 14:01 Сейчас в теме
(2) Спасибо, вариант.
Но застрелиться можно на больших объемах...
5. user1278383 5 18.11.21 14:04 Сейчас в теме
(3) почему? Все тоже самое выходит, только даты заказов нужно поместить во временную таблицу. В любом случае делать придется примерно так, потому что в параметр виртуальной таблицы можно поместить только константу...
6. -AI- 18.11.21 14:05 Сейчас в теме
https://youtu.be/1U4AajO_vHk

ВЫБРАТЬ
	Товары.Номенклатура КАК Номенклатура,
	НачалоПериода(Товары.Ссылка.Дата) КАК Дата,
	МАКСИМУМ(Цены.Период) КАК Период
ИЗ
	Документ.ЗаказКлиента.Товары КАК Товары
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК Цены
		ПО (Цены.Номенклатура = Товары.Номенклатура)
			И (Цены.Период <= НачалоПериода(Товары.Ссылка.Дата))
СГРУППИРОВАТЬ ПО
	Товары.Номенклатура,
	НачалоПериода(Товары.Ссылка.Дата)
Показать
по этой таблице, зная Номенклатуру и Дату Документа может узнать дату периода
а зная ноенклатуру и дату периода, в следующем соединении, узнаем цену
7. -AI- 18.11.21 15:05 Сейчас в теме
(6) форум не даёт редактировать, в предыдущем сообщении есть ошибка - не указан параметр "ДЕНЬ" в функции НачалоПериода

но я сделал готовый конечный запрос:
ВЫБРАТЬ
	Товары.Ссылка,
	Товары.Номенклатура,
	Товары.ВидЦены,
	Товары.Цена КАК ФактическаяЦена,
	Цены.Цена КАК ПравильнаяЦена
ИЗ
	(ВЫБРАТЬ
		Товары.Номенклатура,
		Товары.ВидЦены,
		НачалоПериода(Товары.Ссылка.Дата, ДЕНЬ) КАК Дата,
		МАКСИМУМ(Цены.Период) КАК Период
	ИЗ
		Документ.ЗаказКлиента.Товары КАК Товары
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
		РегистрСведений.ЦеныНоменклатуры КАК Цены
			ПО Цены.Номенклатура = Товары.Номенклатура
			 И Цены.ВидЦены = Товары.ВидЦены
			 И Цены.Период <= Товары.Ссылка.Дата
	СГРУППИРОВАТЬ ПО
		Товары.Номенклатура,
		Товары.ВидЦены,
		НачалоПериода(Товары.Ссылка.Дата, ДЕНЬ)) КАК Периоды
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	РегистрСведений.ЦеныНоменклатуры КАК Цены
		ПО Цены.Номенклатура = Периоды.Номенклатура
		 И Цены.ВидЦены = Периоды.ВидЦены
		 И Цены.Период = Периоды.Период
			ВНУТРЕННЕЕ СОЕДИНЕНИЕ
	Документ.ЗаказКлиента.Товары КАК Товары
		ПО Товары.Номенклатура = Периоды.Номенклатура
		 И Товары.ВидЦены = Периоды.ВидЦены
		 И НачалоПериода(Товары.Ссылка.Дата, ДЕНЬ) = Периоды.Дата
ГДЕ
	НЕ Товары.Цена=Цены.Цена
УПОРЯДОЧИТЬ ПО
	Товары.Ссылка.Дата УБЫВ
Показать
Оставьте свое сообщение

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