получить актуальный курс по дате в СКД.

1. nadyusha22 31.03.23 09:50 Сейчас в теме
Здравствуйте, скажите пожалуйста, как связать курсы валют к дате.
делаю запрос:
Код
ВЫБРАТЬ
   ВалютаКурс.Период КАК Период,
   ВалютаКурс.Валюта КАК Валюта1,
   ВалютаКурс.Курс КАК Курс
ИЗ
   РегистрСведений.ВалютаКурс КАК ВалютаКурс
Показать полностью

c этим запросом получаю только первый курс по периоду.
То есть например скажем в феврале курс менялся 3 раза:
Код
01.02.2023 курс  =15 руб
15.02.2023 курс  =25 руб
28.02.2023 курс  =35 руб
Показать полностью

если в отчете выбрать период 01-28.02.2023 г., показывает только 15 руб до конце периода.
Мне надо чтобы: например от 01 до 14 курс показывал 15, от 15 до 27 показывал курс 25, от 28 до 03 марта показывал курс 35 и так далее.

подскажите пожалуйста, как этого добится.
Спасибо всем.
Найденные решения
3. YozZzhik 31.03.23 15:06 Сейчас в теме
ВЫБРАТЬ
	КурсыВалют.Период КАК Период,
	КурсыВалют.Валюта КАК Валюта,
	КурсыВалют.Курс КАК Курс
ПОМЕСТИТЬ ВТ_Курсы
ИЗ
	РегистрСведений.КурсыВалют КАК КурсыВалют
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Курсы.Период КАК Период,
	МАКСИМУМ(ВТ_Курсы1.Период) КАК Период1,
	ВТ_Курсы.Валюта КАК Валюта,
	ВТ_Курсы1.Валюта КАК Валюта1
ПОМЕСТИТЬ ВТ_Даты
ИЗ
	ВТ_Курсы КАК ВТ_Курсы
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Курсы КАК ВТ_Курсы1
		ПО ВТ_Курсы.Период > ВТ_Курсы1.Период
			И ВТ_Курсы.Валюта = ВТ_Курсы1.Валюта
СГРУППИРОВАТЬ ПО
	ВТ_Курсы.Период,
	ВТ_Курсы.Валюта,
	ВТ_Курсы1.Валюта
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Даты.Период1 КАК СДаты,
	ВТ_Даты.Период КАК ПоДату,
	ВТ_Даты.Валюта КАК Валюта,
	ВТ_Курсы.Курс КАК Курс	
ИЗ
	ВТ_Даты КАК ВТ_Даты
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Курсы КАК ВТ_Курсы
		ПО (ВТ_Даты.Период = ВТ_Курсы.Период)
			И (ВТ_Даты.Валюта = ВТ_Курсы.Валюта)
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Курсы КАК ВТ_Курсы1
		ПО (ВТ_Даты.Период1 = ВТ_Курсы1.Период)
			И (ВТ_Даты.Валюта1 = ВТ_Курсы1.Валюта)
УПОРЯДОЧИТЬ ПО
	Валюта
Показать
nadyusha22; +1 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. DesertPunk 31.03.23 10:17 Сейчас в теме
(1)Гугли срез последних на каждую дату
karamazoff; +1 Ответить
4. Sashares 33 31.03.23 15:31 Сейчас в теме
(1)В настройке СДК дополнение периода для группировки Период с видом День, будет то что требуется.
И не надо никакого среза на каждую дату.
Прикрепленные файлы:
nadyusha22; +1 Ответить
3. YozZzhik 31.03.23 15:06 Сейчас в теме
ВЫБРАТЬ
	КурсыВалют.Период КАК Период,
	КурсыВалют.Валюта КАК Валюта,
	КурсыВалют.Курс КАК Курс
ПОМЕСТИТЬ ВТ_Курсы
ИЗ
	РегистрСведений.КурсыВалют КАК КурсыВалют
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Курсы.Период КАК Период,
	МАКСИМУМ(ВТ_Курсы1.Период) КАК Период1,
	ВТ_Курсы.Валюта КАК Валюта,
	ВТ_Курсы1.Валюта КАК Валюта1
ПОМЕСТИТЬ ВТ_Даты
ИЗ
	ВТ_Курсы КАК ВТ_Курсы
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Курсы КАК ВТ_Курсы1
		ПО ВТ_Курсы.Период > ВТ_Курсы1.Период
			И ВТ_Курсы.Валюта = ВТ_Курсы1.Валюта
СГРУППИРОВАТЬ ПО
	ВТ_Курсы.Период,
	ВТ_Курсы.Валюта,
	ВТ_Курсы1.Валюта
;
////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Даты.Период1 КАК СДаты,
	ВТ_Даты.Период КАК ПоДату,
	ВТ_Даты.Валюта КАК Валюта,
	ВТ_Курсы.Курс КАК Курс	
ИЗ
	ВТ_Даты КАК ВТ_Даты
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Курсы КАК ВТ_Курсы
		ПО (ВТ_Даты.Период = ВТ_Курсы.Период)
			И (ВТ_Даты.Валюта = ВТ_Курсы.Валюта)
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Курсы КАК ВТ_Курсы1
		ПО (ВТ_Даты.Период1 = ВТ_Курсы1.Период)
			И (ВТ_Даты.Валюта1 = ВТ_Курсы1.Валюта)
УПОРЯДОЧИТЬ ПО
	Валюта
Показать
nadyusha22; +1 Ответить
5. user1880116 31.03.23 18:16 Сейчас в теме
(3)
ВТ_Курсы
Это зачем?
nadyusha22; +1 Ответить
6. YozZzhik 01.04.23 10:28 Сейчас в теме
(5) Очевидно же, для улучшения производительности и читаемости запроса. В следующей временной и последней основной таблицах используются данные из этой временной таблицы. Или вы хотите каждый раз использовать запрос к регистру сведений?
7. user1880116 01.04.23 18:53 Сейчас в теме
(6)
для улучшения производительности
Серьезно? Скопировать весь регистр в таблицу без индексов это теперь означает "улучшить производительность"?
8. YozZzhik 01.04.23 18:58 Сейчас в теме
(7) Добавь индексы самостоятельно. Надеюсь, ты справишься... точнее я верю в тебя
9. user1880116 01.04.23 18:59 Сейчас в теме
(8)
я верю в тебя
Требую жертвоприношения.
Оставьте свое сообщение
Вакансии
Программист/тестировщик
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день

Ведущий разработчик 1С / Team lead отдела разработки 1С
Москва
зарплата от 300 000 руб. до 300 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 150 000 руб.
Полный день