Задать вопрос
iiiajlyn
@iiiajlyn
(づ ◕‿◕ )づ

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

Нужно получить цену на номенклатуру в УТ11
Есть запрос
Запрос.Текст = "ВЫБРАТЬ
		               |	ЦеныНоменклатуры.Номенклатура.Ссылка КАК НоменклатураСсылка,
		               |	ЦеныНоменклатуры.ВидЦены.Ссылка КАК ВидЦеныСсылка,
		               |	ЦеныНоменклатуры.Цена КАК Цена
		               |ИЗ
		               |	РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
		               |ГДЕ
		               |	ЦеныНоменклатуры.ВидЦены.Ссылка = &ВидЦены
		               |	И ЦеныНоменклатуры.Номенклатура.Ссылка = &Номенклатура
		               |	И ЦеныНоменклатуры.Период МЕЖДУ &ДатаНачало И &ДатаКонец";
		

		Запрос.УстановитьПараметр("Номенклатура", НоваяСтрока.Номенклатура.Ссылка);
		Запрос.УстановитьПараметр("ВидЦены", НоваяСтрока.ВидЦены.Ссылка);
		Запрос.УстановитьПараметр("ДатаНачало", НачалоДня(ТекущаяДата()));
		Запрос.УстановитьПараметр("ДатаКонец", КонецДня(ТекущаяДата()));

как только я устанавливаю Период то он нечего не выдает
я новичок и не совсем понимаю что я делаю не так
Без периода я получаю цены за старые даты...
я понимаю так выбери цену на определенную номенклатуру которая действует на этот период
Что я делаю не так?
  • Вопрос задан
  • 48 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@Dementor
программист, архитектор, аналитик
1) В УТ11 ЦеныНоменклатуры - это периодический регистр. Вам нужно обращаться не к физической таблице, а к виртуальной таблице СрезПоследних, передавая первым параметром дату, на которую нужны цены, а вторым параметром условие фильтрации.

2) Когда вы в физической таблице пишите "Период МЕЖДУ &ДатаНачало И &ДатаКонец", то вы получаете только те записи, которые были записаны на указанный период. Очевидно, что в вашей базе на период текущего дня не было установки цен и вы ничего не получили.

3) ЦеныНоменклатуры.ВидЦены.Ссылка, ЦеныНоменклатуры.Номенклатура.Ссылка, НоваяСтрока.Номенклатура.Ссылка и НоваяСтрока.ВидЦены.Ссылка - это избыточно. Для ссылочных типов Ссылка - это обращение к самому себе, можно сделать хоть миллион обращения НоваяСтрока.ВидЦены.Ссылка.Ссылка.Ссылка.Ссылка(.Ссылка), но это будет эквивалентно НоваяСтрока.ВидЦены - а вот время на бесмысленные расчеты будет потрачено.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы