Александр, пардон за граматику (русский для меня не родной). Нужно таже понимать что если человек верно и успешно переводит деньги в валюту, а "валюта страны" дешевеет, то он должен понимать как некие решения повлияли на либо + в общее значение либо минус. И чтобы это отображалось на графике.
Пример:
Я начинал вести бухгалтерию более года назад при курсе (для простоты) 8 грн за 1 долл. На тот момент у меня было 3000$ сбережений, что отображалось началом графика в 24 000 грн (8х3000). Прошло время, курс теперь 24 грн за 1 долл. Лично я хотел бы видеть начало моего графика баланса на той точке которая была там изначально, т.е. 24 000 грн (3000$) а сейчас там стоит неверная начальная цифра 72 000 грн. (т.к. график считает только по курсу НА СЕГОДНЯ). На момент начала ведения бухгалтерии у меня НЕ БЫЛО 72 000 грн. И эти данные не верны в корне. Каждый день должен иметь свой курс. Если я успешно перевел деньги в валюту, потом курс ВЫРОС, то я хочу видеть что 01.01.2014 у меня было 24000 грн по старому курсу, а 09.02.2015 из-за того что я вовремя перевел все в валюту у меня теперь 3000х24=72000 грн., но на начало ведения бухгалтерии в графике должно отображатся состояние 24000 грн. Т.е. дядя Петя который также имел на начальную дату 24000 грн, но не конвертировал их в USD остался со своими 24000 грн, а у меня есть прирост в наличке в грн.
Я бы хотел видеть реальный прирост в грн от того что я вовремя конвертировал грн в дол. Т.е. для примера если бы я оставил 24 000 грн лежать в грн., то по состоянию на сегодня у меня вместо 3000$ было бы всего (24000/24) 1000$ - т.е. я неэфективно обходился со своими сбережениями.
Нужно этот фактор учитывать и показывать на графике. Если это невозможно - тогда позволить строить графики в разных валютах, но по актуальным курсам.
Свой курс валют на каждый день
Приведение сумм к общему знаменателю нужно чтобы их сравнивать: больше или меньше и на сколько. Если нужны конкретные цифры, каждую валюту необходимо рассматривать отдельно.
Курсы на любую дату с красивыми графиками есть в интернете. Хранить исторические курсы даже нескольких валют (каждая к каждой) нет смысла - это в разы увеличит размер базы данных без особой пользы.
[i]Александр, [/i]
[i]Основной вопрос не к ведению балансов (в них все отлично), а к отчету доходов/расходов (к примеру) за длительный период.[/i]
[i]Ex:[/i]
[i]Январь 2014, Баланс 1, потратили 100 000 рублей, курс на январь 30[/i]
[i]Январь 2014, Баланс 2, потратили 100 долларов, курс на январь 30[/i]
[i]Декабрь 2014, Баланс 1, потратили 100 000 рублей, курс на декабрь 60[/i]
[i]Декабрь 2014, Баланс 2, потратили 100 долларов, курс на декабрь 60[/i]
[i]Основная валюта учета доллары, построим отчет о расходах в декабре 2014, получим, что в Январе мы в два раза меньше потратили в валюте учета, чем на самом деле, т.к. весь график будет пересчитан по 60 рублей. В январе 2015, если курс станет 63, то вся картина снова изменится.[/i]
[i]Предполагаю всего три варианта решения:[/i]
[i]- при мульти-валютной системе, считать что график не объективен;[/i]
[i]- отдельно строить графики для разных валют;[/i]
[i]- собирать и хранить справочно курсы валют на нужные даты, учитывать их при построении графика;[/i]
[i]Буду рад комментарию по этому поводу. Спасибо.[/i]
В этом нет особого смысла. Хранить историю курсов обмена всех 200+ валют друг с другом довольно накладно, а красивые графики можно посмотреть и в интернете. В программе курс валют используется только для расчета остатков в основной валюте, само собой для этого подходит только текущий курс. Транзакции перевода со счета на счет (обмен валют) хранят свой курс отдельно.
"Если транзакция в валюте, то и хранить ее необходимо в валюте" цитата.
на графике дохода пересчитывать в рубли.
о чем речь?
Бухгалтерия это строгая "наука". Каждое последующее значение в столбце баланс четко следует из предыдущего. У вас этого нет, баланс не зависит от предыдущих значений, а рассчитывается из соседнего столбца, который сам по себе смысла не имеет. Т.е. вы банально подогнали цифры под результат. Добавьте в таблицу еще транзакций в разных валютах и с разных счетов - что предлагаете писать в столбец "Баланс в валюте" и как теперь выводить из этой каши значения в столбце "Баланс в основной валюте"?
Я бы вам предложил попробовать вести простейший учет в экселе по вашей методике, но боюсь при достаточно стабильном курсе валют вы не скоро заметите подвох. Поэтому еще один пример: Вася получил $100 по курсу 10р. (1000р), через месяц получил еще $100 но уже по курсу 20р. (2000р.), еще через месяц Вася потерял $100, а курс был тогда 30р. (-3000р.). По вашей логике у Васи денег не осталось (1000 + 2000 - 3000 = 0).
Секрет тут в том что у Васи никогда не было никаких рублей, а всегда были только доллары. Рубли появятся тогда и только тогда когда Вася продаст доллары, а до этого момента пересчитывать доллары в рубли просто не корректно и не имеет смысла. Есть только [b]потенциальная[/b] стоимость накоплений в разных валютах, что и показывает программа. Остальное это натягивание совы на глобус.
Скорее так:
Месяц | Курс | Валюта |Сумма в вал. | Баланс в вал. | Баланс в осн. вал.
1 33 $ 100 100 3300
2 34 $ 100 200 6800
3 35 $ 100 300 10500
4 36 $ 100 400 14400
------------------------------------------------
Итого 400 14400
Потому как итог нужно подводить по курсу на определенный момент времени. Если транзакция в валюте, то и хранить ее необходимо в валюте, и тогда на любой момент времени при хранении истории курсов реальные данные в основной валюте (Баланс в основной валюте) получить не составит труда.
В вашем примере реальные данные отображаются лишь за четвертый месяц (и то лишь при условии, что отчет составляется именно в четвертом месяце). Не было в "реальности" у "Васи" после первого месяца 3600 руб.
А ведь в том то и суть ведения домашней бухгалтерии (да и не только домашней), что можно [u]проанализировать[/u] изменение доходов и расходов: что на них влияет, что изменилось за какой-либо промежуток времени, на что и на сколько расходуется бюджет, откуда и в каком количестве приходят поступления.
А остаток денег можно посчитать и не ведя бухгалтерию: посмотрел баланс карт да пересчитал наличные в кармане, кошельке.
Как вы себе это представляете?
Пример. Условный Вася имеет левый доход $100 ежемесячно и откладывает всю сумму. Сейчас в программе это будет выглядеть так:
Месяц | Сумма $ | Сумма р. | Баланс
1 100 3600 3600
2 100 3600 7200
3 100 3600 10800
4 100 3600 14400
------------------------------------------------
Итого 400 14400
Понятно что откуда берется, остаток на счете совпадает с суммой всех операций по этому счету. Если продать накопленные $400 то получится приблизительно 14400р., что тоже соответствует тому что пишет программа.
Вы предлагаете:
Месяц | Сумма $ | Сумма р. | Баланс
1 100 3300 3300
2 100 3400 6700
3 100 3500 10200
4 100 3600 13800
------------------------------------------------
Итого 400 13800
У нас с Васей есть вопрос - откуда 13800, когда должно быть 14400? И если тупо написать 14400 то что мне ответить пользователям которые заявят что программа даже сложить несколько чисел не может правильно?
Я понимаю что вы хотите красивый график, но как логически объяснить как этот график был получен? Я думаю, что мысль о том что моя зарплата растет вместе с курсом доллара хоть и греет душу, но в корне не верная.
[reply user_id=3][h4][b]Александр wrote:[/b][/h4]Тогда и инфляцию надо учитывать.
Но в целом это все равно измерение длинны в попугаях, доход был $1000, стал $900, остальное домыслы. (а уж как вырос доход в зимбавийских тугриках - любо дорого смотреть)[/reply]
Инфляция влияет на покупательскую способность, но не на величину дохода.
Если основной валютой в базе остановлены доллары и расчеты ведутся только в одной валюте, то может и домыслы. Но если основная валюта - рубли, а расчеты в долларах, то график показывает изменение доходов для неосновной валюты (в то же время подписи на графике для основной).
В моем прошлом примере, график будет показывать уменьшение дохода в рублях (основной валюте), хотя доход вырос!
А если еще и учесть, что расчеты ведутся не в одной валюте, а в нескольких (рубли, доллары, евро.. да хоть тугрики), то график вообще не понятно, что будет показывать.
инфляция учитывается автоматически в ценах приобретаемых товаров и услуг.
в попугаях это как раз в зимбабвийских тугриках, а узнать "был-стал" в основной валюте страны проживания это нормально. нечего домысливать, просто умножить.
Тогда и инфляцию надо учитывать.
Но в целом это все равно измерение длинны в попугаях, доход был $1000, стал $900, остальное домыслы. (а уж как вырос доход в зимбавийских тугриках - любо дорого смотреть)
[reply user_id=44][h4]limpopo wrote:[/h4][reply user_id=undefined][h4]Alexander wrote:[/h4]а на графике этого отображаться не будет.[/reply]а вы проверили?[/reply]Да, проверил!
limpopo, я писал именно об этом! Интересует именно реальный график доходов (да в принципе и с графиком расходов аналогичная ситуация). Не то каков остаток на сегодняшний день по текущему курсу, а именно каковы у меня были реальные доходы и расходы за определенный период. Например, как изменялся мой ежемесячный доход в течение года.
И естественным образом, при появлении графиков с реальными значениями с учетом курсов, возникает пожелание добавить возможность выбора валюты графика. Потому как в случае учета реальных курсов, эти графики для разных валют могут существенно отличаться.
Опять же на примере пары рубль-доллар: в начале года доход 1000 долларов, что при курсе в 30 рублей за доллар = 30 000 рублей, на конец года доход 900 долларов * 36 рублей = 32 400 руб. Получается, что в долларах доход уменьшился, в рублях увеличился.
автор пишет о - рублевый график валютных доходов сейчас прямая параллельная оси Х по текущему курсу. видимо ему хотелось бы видеть реальный график, учитывающий изменения курса. речь вообще не о тратах и сохранении.
[reply user_id=382][h4][b]Alexander wrote:[/b][/h4]Хранить курсы всех валют и нет необходимости, только тех, что выбраны. Подгружать при необходимости добавленные валюты.
А необходимо это, в частности, для более реального отображения отчетов по доходам и расходам. Потому как отчет отображается в основной валюте, то данные за прошедшее время при изменении курсов отображаются некорректно. Например, на конкретном примере пары рубль-доллар: допустим основная валюта - рубль, есть ежемесячный приход в 1000 долларов. Так год назад в рублевом эквиваленте это составляло 30 тыс. рублей, а сейчас 36 тыс. Получается, что в рублях доход вырос, а на графике этого отображаться не будет.[/reply]Это что-то из разряда "а в попугаях-то я гораздо длиннее!"
Если вы эту прошлогоднюю 1000 долларов потратили или продали, то уже не имеет никакого значения сколько бы они могли стоить сейчас, все равно их уже нет. А если сохранили - то вот они ваши 36000р., по текущему курсу как раз и показываются как требуется.
[reply user_id=382][h4][b]Alexander wrote:[/b][/h4]а на графике этого отображаться не будет.[/reply]а вы проверили?
Хранить курсы всех валют и нет необходимости, только тех, что выбраны. Подгружать при необходимости добавленные валюты.
А необходимо это, в частности, для более реального отображения отчетов по доходам и расходам. Потому как отчет отображается в основной валюте, то данные за прошедшее время при изменении курсов отображаются некорректно. Например, на конкретном примере пары рубль-доллар: допустим основная валюта - рубль, есть ежемесячный приход в 1000 долларов. Так год назад в рублевом эквиваленте это составляло 30 тыс. рублей, а сейчас 36 тыс. Получается, что в рублях доход вырос, а на графике этого отображаться не будет.
- Изменено
Доброго времени суток.
Я думал, что я нашел багу обнаружив, что отчеты считаются по текущему курсу и в следствии чего значения по ним "едут". А тут оказывается - это замысел разработчиков. Ну допустим в этом есть определенный резон, но я пожалуй опишу и свое видение данного вопроса.
Начну с того, что мне не часто приходится платить в иностранной валюте - за 2021 год такое было в августе (ввиду чего я собственно подвох не сразу заметил). Но это не значит, что на это можно/нужно закрыть глаза. И здесь я скорее согласен с комментариями выше, что в долгосрочном разрезе, для анализа расходов, привязываться к текущему курсу валют - в корне не верный подход. Отчеты получаются некорректные.
Очевидным решением, описанным выше, было бы хранить курс валют по датам и опираться на них при расчете транзакций. Но на сколько я понял - это реализовывать не планируется в виду того, что размер базы увеличится. Далее могут начаться проблемы с синхронизацией больших файлов и т.п. нюансы. Сложно судить на сколько в реальности база увеличится, если скажем оперировать одной валютой, но допустим тут есть свой смысл.
Так же можно использовать тип операции перевод, но это несколько ломает логику ведения бюджета в разных счетах и на выходе получится жутко не удобно.
Тем не менее, на сколько я могу судить, в программе уже реализован функционал редактирования курса валюты для конкретной транзакции. Более того, каждая такая транзакция (с отредактированным курсом), в своих свойствах, автоматически считает правильную сумму затрат для выбранной там валюты по заданному курсу. Тут, кстати, логично валюту устанавливать той, что является основной для пользователя.
Мое предложение состоит в том, чтобы при построении отчетов, если ручной курс задан для транзакции, учитывать нужно значение полученное там. Для транзакций, где это не настроено - рассчитывать по умолчанию.
Да, все это несколько неповоротливо и нужно вручную каждую транзакцию редактировать - зато хоть как-то управляемо и экономно с точки зрения занимаемого места. Плюс доработка в программе не выглядит громоздкой/масштабной.
Кстати, если не для этого, то для чего данный функционал вообще имеется в программе?
ПРИМЕР:
У меня есть 2 счета:
НАЛИЧНЫЕ. В настройках данного счета указан Рубль в качестве валюты.
НАЛИЧНЫЕ ($). В настройках данного счета указан Доллар в качестве валюты.
06.08.2021: Я сделал перевод на сумму 59974 руб. между счетами НАЛИЧНЫЕ -> НАЛИЧНЫЕ ($) и в итоге получил 811$. Получается банк, где я менял валюту, рассчитал меня по курсу 811/59974=0,0135225264. Это значение я и указал в настройках перевода. Да, данный курс отличается от курса ЦБ, но это и логично - банки на таких конвертациях и зарабатывают.
10.08.2021: Я совершил транзакцию (не перевод) и потратил 10$ со счета НАЛИЧНЫЕ ($). В настройках транзакции я выставляю:
Валюта = Рубль
Курс =73,5078 (это как раз курс ЦБ)
Автоматически подсчитанная сумма в заданной валюте = 142,02 руб.
11.08.2021: Я совершил транзакцию (не перевод) и потратил 5$ со счета НАЛИЧНЫЕ ($). В настройках транзакции я выставляю:
Валюта = Рубль
Курс =73,5962 (это как раз курс ЦБ)
Автоматически подсчитанная сумма в заданной валюте = 367,98 руб.
...
При построении отчетов, учитывая "отредактированные" транзакции в счетах с валютой отличной от основной для пользователя, мы будем получать точные цифры - всегда отражающие действительность за прошедший период времени.
В итоге:
а) Не придется хранить курсы валют по всем дням, а база, в свою очередь, не будет увеличиваться "просто так".
б) Процесс станет управляемым.
в) Отчеты за предыдущие периоды будут выглядеть корректно. И это самое важное.
Надеюсь описанное мною выше, будет иметь отклик, т.к. программа мне нравится, но я бы хотел получать корректные отчеты за прошедшие периоды.
Спасибо.