Личные финансы на основе GnuCash

в 12:24, , рубрики: bitcoin, open source, персональный учет, Финансы для всех, метки: , ,

Добрый день хабра-юзер! Месяца полтора назад, может более, я как-то в комментариях упомянул, что веду домашний учет финансов на основе GnuCash. В течении следующей недели мне пришло несколько личных сообщений с просьбой описать процесс сего действия. Скажу сразу, при написании статьи поймал себя на мысли, что легче написать книгу, чем статью по личным финансам. После месяца обдумывания решил выделить 3 основных момента.

  • В статье не будет описания алгоритма работы с программой, но далее, я дам ссылки на достаточно подробные статьи. Если вы никогда не работали с этой программой советую до прочтения статьи ознакомиться с ними.
  • Личные финансы во многом копируют учет финансов «услуг», поэтому эта статья будет полезна и начинающим предпринимателям. Ведение личных финансов, поможет узнать как правильно читать финансовую отчетность, и где часто происходят затыки искажающие её.
  • Личные финансы это монитор вашей деятельности, не более и не менее, это не панацея от всех болезней. Это достаточно кропотливый, нудный и постоянный процесс. Нельзя вести учет финансов урывками. Введёте мусор и в будущем будете анализировать мусор!


Итак начнем установку. Первое, на что хочу обратить внимание, что устанавливать нужно с базой данных MySQL. Это очень важный момент. GnuCash это всего лишь оболочка, все ваши данные хранятся в базе данных, и чем эластичнее и функциональнее инструмент хранения, тем меньше у вас будет проблем в будущем при мигрировании на более современные системы.

Установим программу:

sudo apt-get install gnucash libdbd-mysql mysql-server

Добавим базу данных:

mysql> create database gnucash;
mysql> grant all on gnucash.* to gnucash@localhost identified by 'PASSWORD' with grant option;
mysql> flush privileges;
mysql> exit

После установки нужно создать статьи расходов и доходов. Удалите все статьи которые предложит программа. И выделите 3 основные группы в доходах и расходах.
1. Операционные статьи — это статьи которые описывают повседневную
деятельность. Оплата коммунальных услуг, покупка бензина, аренда квартиры.

2. Инвестиционные статьи — это статьи разовых платежей. Например, вы купили квартиру в кредит и выплатили банку сразу 20% стоимости. Этот платеж будет относиться к инвестиционной деятельности. Вы инвестировали в квартиру, а вот ежемесячные выплаты будут относиться уже к операционной деятельности. Вклад в банк является инвестиционной деятельностью.

3. Финансовые статьи — это проценты от банка, покупка обязательств и т. д.

Далее вам нужно создать Активы. Ваши деньги не сразу попадают в нужную категорию. Они приходят на ваш счет, а только потом, вы создаете проводку. К активам относятся наличные, банковские счета, электронные деньги.

Вот собственно и всё, шаблон создан и учет начал вестись.
image
image

Проблемы

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

Внимание, если у вас в организации начали вести двойной учет, эта адская катастрофа.

2. Как быть с проектами. Вот вы фрилансер или разработчик создали свой проект, как учитывать эти расходы? Очень просто они все относятся к инвестиционной деятельности. Да, да. Всё просто.

3. У меня есть счета в электронной валюте ฿ как быть?
В последнее время у всех на устах популярный биткоин, но такой валюты в GnuCash нет. Для этого придется залезть в исходники и поправить 2 файла iso-4217-currencies.scm и iso-4217-currencies.c которые находятся в '/gnucash-2.4.7.1b/src/engine/'

;; non-standard/private - Not ISO4217

( "Bitcoin" "bitcoin" "satoshi" "ISO4217" "BTC" "nil" 100000000 100000000 "BTC" )
  {
    const char *fullname = "Bitcoin";
    gnc_commodity *c = gnc_commodity_new(book,
					 CUR_I18N(fullname),
                                         "ISO4217",
                                         "BTC",
                                         "nil",
                                         100000000);

    if(!c) {
      PWARN("failed to create commodity for currency %s", fullname);
    } else {
      if(!gnc_commodity_table_insert(table, c)) {
        PWARN("failed to insert %s into commodity table", fullname);
      }
    }
  }

и нужно будет подправить файл /usr/share/xml/iso-codes/iso_4217.xml в системе

<iso_4217_entry letter_code="BTC" numeric_code="nil" currency_name="Bitcoin"/>

Собираем исходники

sudo apt-get build-dep gnucash
sudo sh configure --prefix=/opt/gnucash
sudo make
sudo make install

Буду рад ответить на ваши вопросы.

Ссылки:
www.gnucash.org/
wiki.gnucash.org/wiki/GnuCash
www.ashep.org/tag/gnucash/
wiki.gnucash.org/wiki/SQL

Автор: Torna

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js