Страница 1 из 1

Работа с валютами.

Добавлено: 28 июл 2022, 10:09
alexinc
Добрый день. Не подскажет ли кто, если был кейс, как реализовывали работу с валютами?
У меня есть пример.
Номенклатура приходит в разных валютах. В списке номенклатуры ее тоже ценят в валюте прихода. Ценник фиксируется. Сейчас это три единицы валюты: USD,EUR,RUB. Через пару тройку месяцев добавятся еще парочка (юани, сумы и т.д.).
Счета выставляются в основном в двух единицах: EUR,RUB. Но прошел слушок (на самом верху) - что скоро нужно будет выставлять в единицах дружественных стран.
Смотрел видео от Сергея, но его предложения на каждую валюту заводить поле цены - это несколько неудобно..
Проблема встает в полный рост, например когда в счете начинается набор разновалютных товаров.
То есть в счете указываем (есть глобальный список валюты, пришлось сделать, потому что обратиться к списку валют из сущности невозможно) что валюта счета - EUR. И тут начинаются танцы с бубнами:
1. товар в рублях
2. Товар в евро
3. Товар в долларах.
(В голове держим, что может быть и в других валютах)
Я попытался использовать встроенную базу Валюту для сравнения, но там невозможно добавить Цифровое обозначение валюты для внесения кода из классификатора (что в общем, странно. Запрос из ЦБ обычно по коду происходит, а не по буквенному совпадению).
Есть ли у кого какие идеи, как красиво реализовать? Может кто-то подскажет?

Re: Работа с валютами.

Добавлено: 28 июл 2022, 11:45
alcompstudio
Добрый день! Если речь идет только для организации учета в разных валютах (не имеется ввиду автоматическая загрузка курсов с ЦБ и т.п., а просто проблема в организации учета). Тогда следующее:

Могу ошибаться, но все зависит от того, в какой валюте вы ведете учет (финансовый, оперативный). Т.е. в какой валюте (или валютах) вы строите аналитику доходы/расходы (прибыль/убытки) - ведь это основная цель любого коммерческого предприятия (если у вас, конечно коммерческий проект).

В итоге у вас должна быть "базовая" валюта - к которой и будет все сводиться и конвертироваться, чтобы отражать в аналитике. Конечно если у вас отчетность, аналитика в 2-х и более валютах, тогда нужно это учитывать и конвертировать финансовые результаты и в эти "отчетные" валюты.

Самое простое, что можно предложить - это ввести сущность Валюты и подсущность Курсы валют - там вы занесете все имеющиеся на сегодня валюты, а в подсущности - будете вносить изменения курсов на дату, ну и через функции (Дополнение) или подзапрос - выводить в сущность Валюты актуальный на сегодня курс.

Далее в каждой сущности, где у вас предполагается денежные расчеты (поля Число для внесения сумм) - Счета, Платежки, Договора, Заказы и т.п. - рядом с полем Сумма добавляете поля Валюта (ссылка на сущность Валюты) и Курс валюты (копируете актуальный курс из сущности Валюты). Ну и еще делаете фиксированные поля в "базовой" валюте (или нескольких "базовых" валютах, если такое нужно в отчетности/учете) - Сумма в Руб. Это поля - формульные - там просто пересчитываете сумму в текуще валюте на рубли по курсу. И это фиксируется в каждом вашем документе, что потом в итоге вы выводите в какую-то "общую" сущность, где аккумулируется у вас аналитика в базовой (базовых) валюте.

Т.е. идея в том, чтобы приводить все в итоге - к базовой валюте, в которой вы ведете учет и отчетность. И вносить можете в любой нужной валюте суммы, в итоге цифры будут отражать финансовые результаты в базовых валютах. И при добавлении новой валюты в сущность Валюты - она уже будет в выпадающих списках в нужных сущностях.

Как-то так, если вкратце, это если я понял суть вашей проблемы (у меня тоже была как-то такая проблема мультивалютного учета, решил таким образом).

Re: Работа с валютами.

Добавлено: 28 июл 2022, 13:55
alexinc
Извините, без квотирования, длинного больно.
Идея понятна. Базовая пока одна валюта. Идея с сущностью - понятна и хороша (сохраняем курсы на время работы и для истории, потому дополнение этого не умеет).
Не понятно как крутить с товаром, но это нужно обдумать.

Re: Работа с валютами.

Добавлено: 28 июл 2022, 14:09
alcompstudio
alexinc писал(а): 28 июл 2022, 13:55 Извините, без квотирования, длинного больно.
Идея понятна. Базовая пока одна валюта. Идея с сущностью - понятна и хороша (сохраняем курсы на время работы и для истории, потому дополнение этого не умеет).
Не понятно как крутить с товаром, но это нужно обдумать.
Ну я по товарам не подскажу, т.к. не знаю механизма работы с товаром в вашем случае (какие операции, для чего они нужны, что вам даст введение валюты в товаре, кроме того, что нужно будет просто выставлять счет в валюте для определенных стран). Все сводится к тому - для чего это вам нужно какая цель/результат преследуется.

Если идея (предыдущий мой ответ) хоть как-то вас вдохновит - рад был помочь ;)

Re: Работа с валютами.

Добавлено: 28 июл 2022, 14:31
alexinc
alcompstudio писал(а): 28 июл 2022, 14:09
alexinc писал(а): 28 июл 2022, 13:55 Извините, без квотирования, длинного больно.
Идея понятна. Базовая пока одна валюта. Идея с сущностью - понятна и хороша (сохраняем курсы на время работы и для истории, потому дополнение этого не умеет).
Не понятно как крутить с товаром, но это нужно обдумать.
Ну я по товарам не подскажу, т.к. не знаю механизма работы с товаром в вашем случае (какие операции, для чего они нужны, что вам даст введение валюты в товаре, кроме того, что нужно будет просто выставлять счет в валюте для определенных стран). Все сводится к тому - для чего это вам нужно какая цель/результат преследуется.

Если идея (предыдущий мой ответ) хоть как-то вас вдохновит - рад был помочь ;)
С товаром как раз и есть проблема. Товар в прайсе выставляется в разных валютах, в зависимости от страны происхождения и продается именно с привязкой к валюте цены. То есть в счете могут быть товары поцененные и в рублях и в долларах и в евро. Счет выставляется или в рублях, или в долларах, или в евро, или еще в чем. И вот тут и происходит вся чехарда. Что цениться в разных валютах, а счет делается в другой, даже не базовой. А оплачивается в лучшем случае чисто в рублях(что тоже не базовая валюта), в худшем - в рублях+ % + еще что-то. В общем, все сложно :)