|
Как конвертировать валюту в запросе? | ☑ | ||
---|---|---|---|---|
0
breezee
29.12.15
✎
10:31
|
У меня есть регистр, в который могут поступать деньги в любой валюте. И валюта, в которой надо вывести результат. В регистре курсы валют содержаться курсы валют. Я получаю курс валют, в который нужно выводить. Потом делаю вычисляемое поле, в котором смотрю - если валюта в регистре совпадает с валютой, в которой нужно вывести - вывожу, если не совпадает - смотрю - если валюта в рублях - сразу умножаю на курс валюты, в которой нужно вывести. Если какая-то другая валюта - пытаюсь получить курс на эту валюту, умножаю на саму валюту - получаю рубли и рубли уже делю(перевожу) в валюту, которую мне нужно для вывода. У меня ругается на то что я в поле пытаюсь выбрать курс. "Синтаксическая ошибка "ВЫБРАТЬ"" Что мне сделать? Код вычисляемого поля:
ВЫБОР КОГДА МойРегист.ВалютаДоговора = втВалют.ВалютаЯчейки ТОГДА МойРегист.ГрафикПогашенияСумма ИНАЧЕ ВЫБОР КОГДА МойРегист.ВалютаДоговора = втВалют.ВалютаРубль ТОГДА МойРегист.ГрафикПогашенияСумма / КурсыВалютСрезПоследних.Курс Иначе (ВЫБРАТЬ КурсыВалютСрезПоследних.Курс ИЗ РегистрСведений.КурсыВалют.СрезПоследних(&КонецПериода, Валюта = втВалют.ВалютаЯчейки ) КАК КурсыВалютСрезПоследних) * МойРегист.ГрафикПогашенияСумма) / КурсыВалютСрезПоследнихЯчейки.Курс Конец Конец P.S. - Нужно именно в запросе |
|||
1
ObjectRelation Model
29.12.15
✎
10:33
|
параметр виртуальной таблицы так не прокатит, условие в соедининение пропиши
|
|||
2
breezee
29.12.15
✎
10:42
|
ВЫБОР
КОГДА МойРегист.ВалютаДоговора = втВалют.ВалютаЯчейки ТОГДА КредитныйПортфель.ГрафикПогашенияСумма ИНАЧЕ ВЫБОР КОГДА МойРегист.ВалютаДоговора = втВалют.ВалютаРубль ТОГДА МойРегист.ГрафикПогашенияСумма / КурсыВалютСрезПоследних.Курс Иначе (ВЫБРАТЬ КурсыВалют.Курс ИЗ втВалют КАК втВалют ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО втВалют.ВалютаЯчейки = КурсыВалют.Валюта) * МойРегист.ГрафикПогашенияСумма) / КурсыВалютСрезПоследнихЯчейки.Курс Конец Конец Не помогло. Или я не так понял? |
|||
3
los_hooliganos
29.12.15
✎
10:44
|
(0) Конвертация валют можно только в хранимой процедуре.
Но это будет в версии 8.4 |
|||
4
ObjectRelation Model
29.12.15
✎
10:44
|
слишком много условий
достаточно умножить на курс валюты регистра и разделить на курс требуемой валюты, без всяких условий |
|||
5
ObjectRelation Model
29.12.15
✎
10:45
|
(3) ХП 1С не сдюжит, как и ООП
|
|||
6
breezee
29.12.15
✎
10:45
|
(3) Хреново. Мне вообще ни как запросом не выцепить?
|
|||
7
breezee
29.12.15
✎
10:49
|
(4) НУ так курс валюты регистра мне все равно надо получать прямо в поле.
|
|||
8
MadJhey
29.12.15
✎
11:02
|
Запрос.Текст =
" |ВЫБРАТЬ | ЕстьNULL(ВЫРАЗИТЬ(&Упаковка КАК Справочник.УпаковкиНоменклатуры).Коэффициент, 1) | * ЕстьNULL(ЦеныНоменклатурыСрезПоследних.Цена,0)/ЕстьNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Коэффициент,1) | * ВЫБОР | КОГДА &Валюта <> ЦеныНоменклатурыСрезПоследних.Валюта | ТОГДА ВЫБОР | КОГДА ЕСТЬNULL(КурсыВалютыЦены.Кратность, 0) > 0 | И ЕСТЬNULL(КурсыВалютыЦены.Курс, 0) > 0 | И ЕСТЬNULL(КурсыВалюты.Кратность, 0) > 0 | И ЕСТЬNULL(КурсыВалюты.Курс, 0) > 0 | ТОГДА | (КурсыВалютыЦены.Курс * КурсыВалюты.Кратность) | / (КурсыВалюты.Курс * КурсыВалютыЦены.Кратность) | ИНАЧЕ 0 | КОНЕЦ | ИНАЧЕ 1 | КОНЕЦ КАК Цена |ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), | ВидЦены = ВЫРАЗИТЬ(&ВидЦены КАК Справочник.ВидыЦен) | И Номенклатура = ВЫРАЗИТЬ(&Номенклатура КАК Справочник.Номенклатура) | И Характеристика = ВЫРАЗИТЬ(&Характеристика КАК Справочник.ХарактеристикиНоменклатуры) |) КАК ЦеныНоменклатурыСрезПоследних |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.КурсыВалют.СрезПоследних(&Дата, ) КАК КурсыВалютыЦены |ПО | ЦеныНоменклатурыСрезПоследних.Валюта = КурсыВалютыЦены.Валюта | |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дата, Валюта = &Валюта) КАК КурсыВалюты | По Истина |"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |