Каталог решений - Получить курс валюты на каждый день

Получить курс валюты на каждый день

Получить курс валюты на каждый день

В наличии

Иногда при разработке отчетов, обработок необходимо получить курс валюты на каждый день.
Это особенно актуально, если курс вносится не ежедневно

Категория:

Описание

В ходе разработки хитрого отчета потребовалось получить курсы валют на каждый день произвольного периода. 

Первый совет мне дали такой — использовать цикл.

Я посчитал, что это не кошерно (как говорят еврейские программеры), и к тому же я использовал СКД для построения отчета.

В итоге удалось получить курсы валюты за период следующим запросом:

 

ВЫБРАТЬ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаМесяц
ПОМЕСТИТЬ ДатаМесяцВТ
ИЗ
	РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНач И &ДатаКон
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	МАКСИМУМ(КурсыВалют.Период) КАК Период,
	КурсыВалют.Валюта,
	ДатаМесяцВТ.ДатаМесяц
ПОМЕСТИТЬ МаксДатаКурсВТ
ИЗ
	ДатаМесяцВТ КАК ДатаМесяцВТ
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
		ПО ДатаМесяцВТ.ДатаМесяц >= КурсыВалют.Период
ГДЕ
	КурсыВалют.Валюта = &Валюта

СГРУППИРОВАТЬ ПО
	КурсыВалют.Валюта,
	ДатаМесяцВТ.ДатаМесяц
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	МаксДатаКурсВТ.Период,
	МаксДатаКурсВТ.ДатаМесяц,
	МаксДатаКурсВТ.Валюта,
	КурсыВалют.Курс,
	КурсыВалют.Кратность
ИЗ
	МаксДатаКурсВТ КАК МаксДатаКурсВТ
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
		ПО МаксДатаКурсВТ.Валюта = КурсыВалют.Валюта
			И МаксДатаКурсВТ.Период = КурсыВалют.Период

УПОРЯДОЧИТЬ ПО
	ДатаМесяц


has been added to your cart:
Оформление заказа