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

курс валют на разные даты в запросе

Автор AlexKZT, 28 дек 2016, 19:23

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

AlexKZT

Доброго времени суток!
Подскажите как мне получить курс валют на разные даты в запросе


Подскажите на примере запроса

Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   ТиповойДвиженияССубконто.Регистратор,
   |   ТиповойДвиженияССубконто.СчетДт КАК СчетДт,
   |   ТиповойДвиженияССубконто.СубконтоДт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)
   |   И КурсыВалют.Валюта = &Доллар"



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

Я думаю это за счет того что если на эту дату нету курса в рег.сведений, то запись не выводится.

А как сделать так, что если нету курса на эту дату, чтобы брался предыдущий, по принципу "СрезПоследних"

Заранее спасибо))

cska-fanat-kz

вбиваем в Яндекс
"1с срез последних на каждую дату"
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги: курс валют 

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

Рейтинг@Mail.ru

Поиск