Доброго времени суток!
Подскажите как мне получить курс валют на разные даты в запросе
Подскажите на примере запроса
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТиповойДвиженияССубконто.Регистратор,
| ТиповойДвиженияССубконто.СчетДт КАК СчетДт,
| ТиповойДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
| ТиповойДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
| ТиповойДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3,
| ТиповойДвиженияССубконто.СчетКт КАК СчетКт,
| ВЫБОР
| КОГДА ТиповойДвиженияССубконто.СчетДт <> &СчетБанк
| ТОГДА 0
| ИНАЧЕ ТиповойДвиженияССубконто.Сумма
| КОНЕЦ КАК СуммаПриход,
| ВЫБОР
| КОГДА ТиповойДвиженияССубконто.СчетКт <> &СчетБанк
| ТОГДА 0
| ИНАЧЕ ТиповойДвиженияССубконто.Сумма
| КОНЕЦ КАК СуммаРасход,
| ТиповойДвиженияССубконто.СубконтоКт1,
| ТиповойДвиженияССубконто.СубконтоКт2,
| ТиповойДвиженияССубконто.СубконтоКт3,
| НАЧАЛОПЕРИОДА(ТиповойДвиженияССубконто.Период, МЕСЯЦ) КАК Период,
| ТиповойДвиженияССубконто.Регистратор.Субконто1 КАК Суб1,
| ТиповойДвиженияССубконто.Регистратор.Субконто2 КАК Суб2,
| ТиповойДвиженияССубконто.Период КАК ДатаПроводки
|ИЗ
| РегистрБухгалтерии.Типовой.ДвиженияССубконто(&НачалоПериода, &КонецПериода, Субконто1 В (&СчетОрганизации), , ) КАК ТиповойДвиженияССубконто
|ГДЕ
| (ТиповойДвиженияССубконто.СчетДт = &СчетБанк
| ИЛИ ТиповойДвиженияССубконто.СчетКт = &СчетБанк)
| И ТиповойДвиженияССубконто.Регистратор.Субконто1 В(&Суб1)";
Показать
Допустим у меня получается результат запроса:
Дата проводки | Сумма приход | Сумма расход |
01.12.2016 500
02.12.2016 1000
03.12.2016 1000
Вот теперь мне нужно на 1,2 и 3 декабря в эту же таблицу вытащить курс из типового регистра сведений "Курсы валют", что бы получилось:
Дата проводки | Сумма приход | Сумма расход | Курс |
01.12.2016 500 330
02.12.2016 1000 329
03.12.2016 1000 335
делаю так:
"ВЫБРАТЬ
| ТиповойДвиженияССубконто.Регистратор,
| ТиповойДвиженияССубконто.СчетДт КАК СчетДт,
| ТиповойДвиженияССубконто.СубконтоДт1 КАК СубконтоДт1,
| ТиповойДвиженияССубконто.СубконтоДт2 КАК СубконтоДт2,
| ТиповойДвиженияССубконто.СубконтоДт3 КАК СубконтоДт3,
| ТиповойДвиженияССубконто.СчетКт КАК СчетКт,
| ВЫБОР
| КОГДА ТиповойДвиженияССубконто.СчетДт <> &СчетБанк
| ТОГДА 0
| ИНАЧЕ ТиповойДвиженияССубконто.Сумма
| КОНЕЦ КАК СуммаПриход,
| ВЫБОР
| КОГДА ТиповойДвиженияССубконто.СчетКт <> &СчетБанк
| ТОГДА 0
| ИНАЧЕ ТиповойДвиженияССубконто.Сумма
| КОНЕЦ КАК СуммаРасход,
| ТиповойДвиженияССубконто.СубконтоКт1,
| ТиповойДвиженияССубконто.СубконтоКт2,
| ТиповойДвиженияССубконто.СубконтоКт3,
| НАЧАЛОПЕРИОДА(ТиповойДвиженияССубконто.Период, МЕСЯЦ) КАК Период,
| ТиповойДвиженияССубконто.Регистратор.Субконто1 КАК Суб1,
| ТиповойДвиженияССубконто.Регистратор.Субконто2 КАК Суб2,
| ТиповойДвиженияССубконто.Период КАК ДатаПроводки,
| КурсыВалют.Период КАК ДатаВалюты,
| КурсыВалют.Курс
|ИЗ
| РегистрСведений.КурсыВалют КАК КурсыВалют
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Типовой.ДвиженияССубконто(&НачалоПериода, &КонецПериода, Субконто1 В (&СчетОрганизации), , ) КАК ТиповойДвиженияССубконто
| ПО (КурсыВалют.Период = НАЧАЛОПЕРИОДА(ТиповойДвиженияССубконто.Регистратор.Дата, ДЕНЬ))
|ГДЕ
| (ТиповойДвиженияССубконто.СчетДт = &СчетБанк
| ИЛИ ТиповойДвиженияССубконто.СчетКт = &СчетБанк)
| И ТиповойДвиженияССубконто.Регистратор.Субконто1 В(&Суб1)
| И КурсыВалют.Валюта = &Доллар"
Показать
вроде бы на первый взгляд все нормально, курс на эти даты выводится правильный, но записи попадают не все, и отчет формирует не правильную итоговую сумму.
Я думаю это за счет того что если на эту дату нету курса в рег.сведений, то запись не выводится.
А как сделать так, что если нету курса на эту дату, чтобы брался предыдущий, по принципу "СрезПоследних"
Заранее спасибо))