Часто возникает потребность в этом, например, отложенное формирование проводок (или построение отчета) в валюте регламентировано учета (обычно «руб») для документов (или других данных) введенным в у.е. (например USD или EUR).
Курсы валют на разные даты в одном запросе. Делаем свой нестандартный срез последних.
Часто возникает потребность в этом, например, отложенное формирование проводок (или построение отчета) в валюте регламентировано учета (обычно «руб») для документов (или других данных) введенным в у.е. (например USD или EUR).
Во вложении готовый пример, обработка.
Пример запроса с комментариями:
// Исходные данные передаем в запрос
«ВЫБРАТЬ
| ИсходныеДанные.Регистратор,
| ИсходныеДанные.Дата,
| ИсходныеДанные.Валюта,
| ИсходныеДанные.Сумма
|ПОМЕСТИТЬ ИсходныеДанные
|ИЗ
| &ИсходныеДанные КАК ИсходныеДанные
|;
|
// Выбираем для каких валют на какие даты надо получить курсы валют
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ИсходныеДанные.Дата,
| ИсходныеДанные.Валюта
|ПОМЕСТИТЬ ДатаВалюта
|ИЗ
| ИсходныеДанные КАК ИсходныеДанные
|;
|
// Выбираем ближайшую дату для курса валют
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатаВалюта.Дата,
| ДатаВалюта.Валюта,
| МАКСИМУМ(КурсыВалют.Период) КАК Период
|ПОМЕСТИТЬ ДатаКурса
|ИЗ
| ДатаВалюта КАК ДатаВалюта
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
| ПО ДатаВалюта.Валюта = КурсыВалют.Валюта
| И ДатаВалюта.Дата >= КурсыВалют.Период
|
|СГРУППИРОВАТЬ ПО
| ДатаВалюта.Дата,
| ДатаВалюта.Валюта
|;
|
// Получаем курсы валют на все даты, которые нужны
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ДатаКурса.Дата,
| ДатаКурса.Валюта,
| ДатаКурса.Период,
| КурсыВалют.Курс,
| КурсыВалют.Кратность
|ПОМЕСТИТЬ КурсыВалютСрез
|ИЗ
| ДатаКурса КАК ДатаКурса
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
| ПО ДатаКурса.Валюта = КурсыВалют.Валюта
| И ДатаКурса.Период = КурсыВалют.Период
|;
|
// Объединяем исходные данные с курсами валют
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИсходныеДанные.Регистратор,
| ИсходныеДанные.Дата,
| ИсходныеДанные.Валюта,
| ИсходныеДанные.Сумма,
| КурсыВалютСрез.Период,
| КурсыВалютСрез.Курс,
| КурсыВалютСрез.Кратность,
| ИсходныеДанные.Сумма * КурсыВалютСрез.Курс / КурсыВалютСрез.Кратность КАК Итог
|ИЗ
| ИсходныеДанные КАК ИсходныеДанные
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ КурсыВалютСрез КАК КурсыВалютСрез
| ПО ИсходныеДанные.Валюта = КурсыВалютСрез.Валюта
| И ИсходныеДанные.Дата = КурсыВалютСрез.Дата»;
Есть вопросы по запросам пишите, постараюсь ответить.




Курсы валют на разные даты в одном запросе. Делаем свой нестандартный срез последних.
Часто возникает потребность в этом, например, отложенное формирование проводок (или построение отчета) в валюте регламентировано учета (обычно «руб») для документов (или других данных) введенным в у.е. (например USD или EUR).
Перейти к публикации
Впечатление дикого дежа-вю. Где я это мог видеть? Впрочем, сейчас набежит
местная илитаместный бомондграбить корованы, раскритикует или похвалит.(1) Поручик, не исключенно, что подобное мог реализовать кто угодно.
Поиск не дал результатов, решил разместить своё.
Примерно так же я решал задачу по РЕПО при сдаче Спеца 1С по Платформе.
(0) То что вы описали — это не есть «Срез последних на каждую дату в запросе»? Если поиском посмотреть — на этом же сайте есть предложенные решения на СКД и в запросе. Вещь полезная.
Оформите публикацию(запрос) нормально
(3) echo77, запрос оформил.
Решение на СКД не нашел, интересно было посмотреть как решили эту проблему там, вдруг что-то интернесное.
(4)
(5) echo77, да там аналогичная задача.
Только там, остатки на каждый день * цены номенклатуры на дату остатка.
А у меня документы суммы в УЕ * Курс да дату документа.
Будет новичкам для примера.
Статья оказалась очень полезной, спасибо.
Скажите, для 8,3 есть?
А если курса валюты нет на дату документа? тогда в колонке курс пусто?
Да там получается пусто
(10) Будет курс на какую то ближайшую предыдущую дату до даты документа, на которую есть курс.
Хорошая статья. Достаточно просто и понятно. Конечно можно и самому сделать , но это время. А времени обычно мало, потому что работы много. Использовал идею данной статьи для расчета котировок для оценки стоимости ввода вывода ценных бумаг по документам за период (во завернул фразу!). Там и котировки нужно брать на предыдущий рабочий день нужной биржи, ну и курс валюты сами понимаете… В общем автору спасибо. Сэкономил мне время!