- В этой теме 1 ответ, 2 участника, последнее обновление 13 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в запросе прайс-листа пересчитать цену из валюты в рубль?
как лучше в запросе прайс листа добавить пересчет из валюты цены в руб
Чтобы в запросе прайс-листа добавить пересчет цены из валюты в рубли, нужно использовать данные из регистра КурсыВалют.СрезПоследних, где хранится актуальный курс валюты на нужную дату.
Основная формула пересчёта из валюты цены в рубли:
|ЦенаВРублях = Цена * КурсВалюты * КратностьРубли / (КратностьВалюты * КурсВалютыВТекущейВалюте)
Если у вас цена в валюте, а рубль — базовая валюта, то формула упрощается, но лучше сделать универсально.
Пример запроса с пересчетом цены в рубли (предположим, что у вас есть поля: Цена, ВалютаЦены, ДатаДокумента):
|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Цены.Цена,
| Цены.Валюта КАК ВалютаЦены,
| КурсыВалют.Курс КАК КурсВалюты,
| КурсыВалют.Кратность КАК КратностьВалюты,
| 1 КАК КратностьРубли,
| Цены.Цена * КурсыВалют.Курс * 1 / КурсыВалют.Кратность КАК ЦенаВРублях
|ИЗ
| РегистрЦен.НоменклатураЦены КАК Цены
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО Цены.Номенклатура = Номенклатура.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта = Цены.Валюта) КАК КурсыВалют
| ПО Цены.Валюта = КурсыВалют.Валюта
Где:
— &ДатаДокумента — параметр с датой, на которую берется курс валюты (обычно дата документа или текущая дата).
— КурсыВалют — регистр сведений с курсами валют.
Если в базе валюта рубль — это справочник.Валюта.ПустаяСсылка(), то для рубля курс и кратность равны 1.
Если хотите сделать универсально с учетом валюты отчета, можно добавить параметр &ВалютаОтчета и формулу пересчёта из валюты цены в валюту отчета:
|ЦенаПересчитанная =
| Цены.Цена
| * КурсыЦены.Курс * КурсыОтчёта.Кратность
| / (КурсыЦены.Кратность * КурсыОтчёта.Курс)
Где КурсыЦены и КурсыОтчёта — курсы валют цены и валюты отчета соответственно, получаемые из регистра КурсыВалют.СрезПоследних.
Рекомендую посмотреть пример реализации пересчёта валют в отчёте здесь:
https://infostart.ru/1c/articles/573102/
Там подробно описан алгоритм и пример запроса с пересчетом валют.
Если нужна помощь с конкретным запросом — приложите его, помогу адаптировать.