Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 18:37

связать курсы валют к дате СКД

Автор maxxi, 31 мар 2023, 09:48

0 Пользователей и 1 гость просматривают эту тему.

maxxi

Здравствуйте, скажите пожалуйста, как связать курсы валют к дате.
делаю запрос:
ВЫБРАТЬ
ВалютаКурс.Период КАК Период,
ВалютаКурс.Валюта КАК Валюта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 и так далее.

подскажите пожалуйста, как этого добится.
Спасибо всем.

 

Afinogen

при таком коде
ВЫБРАТЬ
    ВалютаКурс.Период КАК Период,
    ВалютаКурс.Валюта КАК Валюта1,
    ВалютаКурс.Курс КАК Курс
ИЗ
    РегистрСведений.ВалютаКурс КАК ВалютаКурс

вам долдно показывать курс на каждую дату, но вы пишете что  показывает только первый курс,  проверьте не указан ли у вас в запросе не РегистрСведений а РегистрСведений.СрезПервых() или РегистрСведений.СрезПоследних()

LexaK

Цитата: maxxi от 31 мар 2023, 09:48подскажите пожалуйста, как этого добится.
такой запрос можно построить с помощью двойного левого соединения,
в этом случае вы получите курс валюты именно на дату его заведения.
если помогло нажмите: Спасибо!

maxxi

LexaK, какие метаданны еиспользовать, срезпоследных и что еще.
спасибо.

LexaK

maxxi, тогда другой вариант "классика" с использованием временной таблицы, примерно так

ваши курсы
01.02.2023 курс  =15 руб
15.02.2023 курс  =25 руб
28.02.2023 курс  =35 руб

документы
03.02.2023 Док1
25.02.2023 Док2
28.02.2023 Док3

запрос, (это пример, надо подставить свои реквизиты)
Выбрать
   Док.Ссылка,
   Максимум(РегКурс.ДатаКурса) как ДатаКурса
поместить втКурсыПоДатам
из
   Документ.Реализация Док
левое соединение РегистрСведений.КурсыВалют РегКурс
по Док.Валюта = РегКурс.Валюта
и Док.Дата >= РегКурс.ДатаКурса
сгруппировать по
   Док.Ссылка
;

Выбрать
   Док.Ссылка,
   РегКурс.Курс
из
   Документ.Реализация Док
левое соединение втКурсыПоДатам
по Док.ссылка = втКурсыПоДатам.ссылка

левое соединение РегистрСведений.КурсыВалют РегКурс
по Док.Валюта = РегКурс.Валюта
и втКурсыПоДатам.ДатаКурса = РегКурс.ДатаКурса


получите такой результат
03.02.2023 Док1, курс = 15
25.02.2023 Док2, курс = 25
28.02.2023 Док3, курс = 35
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск