Пользователь
0,0
рейтинг
21 декабря 2013 в 16:24

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

Добрый день хабра-юзер! Месяца полтора назад, может более, я как-то в комментариях упомянул, что веду домашний учет финансов на основе GnuCash. В течении следующей недели мне пришло несколько личных сообщений с просьбой описать процесс сего действия. Скажу сразу, при написании статьи поймал себя на мысли, что легче написать книгу, чем статью по личным финансам. После месяца обдумывания решил выделить 3 основных момента.
  • В статье не будет описания алгоритма работы с программой, но далее, я дам ссылки на достаточно подробные статьи. Если вы никогда не работали с этой программой советую до прочтения статьи ознакомиться с ними. www.ashep.org/tag/gnucash
  • Личные финансы во многом копируют учет финансов «услуг», поэтому эта статья будет полезна и начинающим предпринимателям. Ведение личных финансов, поможет узнать как правильно читать финансовую отчетность, и где часто происходят затыки искажающие её.
  • Личные финансы это монитор вашей деятельности, не более и не менее, это не панацея от всех болезней. Это достаточно кропотливый, нудный и постоянный процесс. Нельзя вести учет финансов урывками. Введёте мусор и в будущем будете анализировать мусор!


Итак начнем установку. Первое, на что хочу обратить внимание, что устанавливать нужно с базой данных 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
карма
12,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (37)

  • +6
    Вопросы:
    1. Как вести домашний бухгалтерский учёт человеку, совсем от этого далекому, например моей бабушке или родителям? мне например слова «проводка», «счёт», «двойная запись» и прочие термины из профильной области вызывают совсем негативное желание.
    2. Как обстоят дела у gnucash с режимом работы «один пк, несколько учёток пользователей» — муж, жена, дети, все хотят учитывать свои расходы и доходы.
    3. Дальше — вопросы бекапа и восстановления всего этого дела.
    4. Какой должен быть уровень квалификации того, кто должен это все поддерживать и разбираться в этих ваших MySQL, проводках — как мне кажется, обычная домохозяйка врядли справится.

    Собственно про свои попытки и попытки своих знакомых вести учёты расходов/доходов могу сказать, что из них никому это по факту оказалось не надо.
    Максимум пару счетов — вроде кредитка, наличка, на них денежка пришла и ушла в расходы по категориям.

    Я в своё время вёл расходы/доходы в екселе, потом в гугль докс + аналитика в ексель, теперь в режиме хобби и для изучения веб технологий и развития себя как программиста вообще пишу своё веб приложение, как раз по упрощенной схеме, без лишней мороки

    Кстати, про GnuCash на этом сайте уже было несколько очень толковых статей, Вы их читали?
    • 0
      Как вести домашний бухгалтерский учёт человеку, совсем от этого далекому, например моей бабушке или родителям?

      ИМХО самый простой вариант — просто записывать всё в тетрадку. И раз в неделю заносить в программу учёта. С упрощённой категорией приходов/расходов.
      У меня жена и сейчас всё пишет в тетрадку, а потом с неё (плюс выгрузка по банковским счетам) зановим в MoneyDance. Плюс — на случай любого сбоя есть бумажная версия.

      2. Как обстоят дела у gnucash с режимом работы «один пк, несколько учёток пользователей» — муж, жена, дети, все хотят учитывать свои расходы и доходы.

      скорее всего вопрос будет в счетах, а не учётных записях. Т.е. несколько общих семейных счетов и личные счета, представляющие карман/сбережения отдельных людей. К примеру, затраты сына из его личных денег будут осуществляться на счёте «карман сына».

      Максимум пару счетов — вроде кредитка, наличка, на них денежка пришла и ушла в расходы по категориям.

      У меня к этому ещё счёт «наличные» (вернее — несколько счетов, в гривнах и долларах). Т.е. — а что ещё надо? Двойная запись для личных финансов — это перебор.

      P.S. Я использую Moneydance (последние 3 года) — мне эта программа больше всего понравилась. До этого был опыт с Inesoft Cash Organiser, MS Money, Quicken, Ace Money и несколькими другими.
      • –1
        ИМХО самый простой вариант — просто записывать всё в тетрадку. И раз в неделю заносить в программу учёта. С упрощённой категорией приходов/расходов.

        Тогда зачем мы тут распинаемся о современных средствах финансового учета? И что, моим почтенным родственникам сидеть и с калькулятором потом эту тетрадку пересчитывать?

        У меня жена и сейчас всё пишет в тетрадку, а потом с неё (плюс выгрузка по банковским счетам) зановим в MoneyDance. Плюс — на случай любого сбоя есть бумажная версия.

        Налицо двойная работы. Вопрос — зачем?

        скорее всего вопрос будет в счетах, а не учётных записях. Т.е. несколько общих семейных счетов и личные счета, представляющие карман/сбережения отдельных людей. К примеру, затраты сына из его личных денег будут осуществляться на счёте «карман сына».

        Нет, не в счетах, а в самостоятельном пополнении истории платежей под разными учетками в windows/linux. С возможным одновременным редактированием.

        PS меня все эти gnucash давно достали своей перегруженностью, ос и пакетной зависимостью, пришлось писать свое web решение, ныне живущее в Azure по принципу минимального функционала

        • +1
          Тогда зачем мы тут распинаемся о современных средствах финансового учета? И что, моим почтенным родственникам сидеть и с калькулятором потом эту тетрадку пересчитывать?

          А зачем вырывать из контекста? Тем более, что дальше прокомментировали вторую часть про заведение в программу учёта.

          Налицо двойная работы. Вопрос — зачем?

          Зачем — я написал в изначальном комментарии. Чеки выцветают, не на всё они есть. А так у меня есть твёрдая копия, куда можно обратиться в случае чего. Если такой потребности нет — ведите только в программе учёта. Я просто описал свою систему. Поскольку для меня эти данные и их история важны — я использую два носителя (программу и тетрадку).

          P.S. Выделяйте хоть как-то цитаты, иначе сложно читать.
  • 0
    Как вести домашний бухгалтерский учёт человеку, совсем от этого далекому, например моей бабушке или родителям? мне например слова «проводка», «счёт», «двойная запись» и прочие термины из профильной области вызывают совсем негативное желание.
    Двойная запись создана не случайна, бухгалтерия это не только ввод данных но и возможность их быстро проверить.

    Как обстоят дела у gnucash с режимом работы «один пк, несколько учёток пользователей» — муж, жена, дети, все хотят учитывать свои расходы и доходы.
    Вы можете создать сколько угодно баз данных для каждого человека используя только один компьютер.

    Дальше — вопросы бекапа и восстановления всего этого дела.
    Так же как и бэкап mysql.

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

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

    Нет не читал, каюсь. Но GnuCash превосходно сделано для ввода данных, но имеет отвратительные отчеты. Мне вот учет нужен так как доход это мои обязательства по контрактам, а не зарплата. Ведение учета это излишество для человека который имеет только зарплату, но для человека который уже стоит на грани своего дела или занимается своим делом это необходимость.
    • 0
      Двойная запись создана не случайна, бухгалтерия это не только ввод данных но и возможность их быстро проверить.

      Безусловно, но в чём необходимость/польза двойной записи для ведения домашних финансов? Я её не вижу. (несмотря на экономическое образование и весьма плотное знакомство с бухгалтерией и вообще учётом)
      • 0
        Её можно и не вести, раз нет аудита и толком не нужна, но!
        Если вы заметили то у меня не совсем нормальный учет. А смесь движения денежных средств со стандартной бухгалтерией. Легче объяснить на примере.

        Например у меня 2 постоянных контракта. Один из работодателей платит за три месяца вперед 200 тыс. постоянно, если не может предупреждает заранее. Я делаю проводку со счета в раздел доходов компании ХХХ. XXX очень надежный работодатель поэтому, с его денег будет проводка в расходах только на учебу, квартиру и жену.
        Есть второй работодатель, он не надежный, платит не вовремя, и часто меньшей суммой. Его деньги деньги я разнесу во второй сектор расходов, где платежи не регулярные и иногда могут подождать. Отсюда я всегда знаю, что отсутсвие дохода от n контракта приведет к сокращениям расходов в n статье.

        С рождеством!
    • 0
      Вот расскажете почтенным родственникам в возрасте, как им бекапить mysql, проверять что бекап создался корректно и что он не умрёт внезапно вместе с винтом
  • +3
    sudo make
    sudo make install

    Ну checkinstall же! Он собирает исходники сразу в пакет .deb, а не рассовывает их по всей файловой системе так, что удалить иногда бывает сложновато. С пакетом deb удобнее обновляться и удалять в случае ненадобности или проблем.

    И да — свои изменения, добавляющие Биткоин в качестве валюты, не хотите предложить добавить в их репозиторий?
    • –1
      Спасибо, но изменения вносить не буду надо проверять =)
      Криптовалюту не внесут. Её нет в стандарте ISO 4217.
      • +1
        Ну так проверьте и внесите, я всегда так делал со своими статьями =)
        А, ну понятно — жаль, будем ждать новых стандартов, а пока — делать автоматический патчинг исходного кода =) Думаю в ближайшее время начать пользоваться этой программой — как раз то, чего недоставало для того, чтобы перестать тратить деньги на всякую хрень =)
  • 0
    В свое время, когда впрягался в ипотеку, тоже задумался о программах учета личных финансов. Задача, которую хотелось бы решать такова — имеется кредит, надо рассчитать какой взнос нужно сделать чтобы ежемесячный платеж стал равным желаемой сумме. Как сделать это в GnuCash я так и не понял. Использовал Expendable в итоге.
    • 0
      Данная программа стандартизирована на ура. Тут нету расчета % по займам так как подразумевается, что банк вас не будет пытаться кинуть, а выдаст нужную информацию для платежного календаря. В данной программе это называется плановые проводки.

      Если я правильно понял вашу задачу

      Полная сумма которую нужно выплатить банку — первый взнос = ежемесячный взнос * 12 * количество лет.
      • 0
        Перебивать график на много лет с учетом праздников не вариант.
        Вы про проценты забыли, если делать неполное досрочное погашение, то график пересчитывается полностью. Понятно, что в банке график верный, но хочется рассчитать эту сумму так, чтобы каждый месяц отдавать круглое число, допустим.
        • +1
          В чем прикол «отдавать круглое число»?
          • 0
            Никакого глубинного смысла нет. В том, что 20000 р. «удобнее» чем 27743 р. 16 коп. В расчетах, в переноске в кошельке, в наборе на клаве, во всем.
  • +1
    Еще раз прорекламирую ledger: www.ledger-cli.org/
    Намного более гибкая и надежная программа, чем GnuCash. Несмотря на отсутствие графического интерфейса, более интуитивно понятная, чем GnuCash. Например, не надо лезть в исходники, чтобы добавить BitCoin или любую другую валюту.
    • 0
      какой-то полумертвый проект — например ссылка на загрузку osx версии ведет в никуда.
      • 0
        Отнюдь не мертвый, на github странице изменения видны постоянно. Есть также несколько живых проектов использующих тот же текстовый формат, но написанных на других языках программирования.

        Автор проекта, если не ошибаюсь, сам пользуется Mac, так что наверное надо просто сообщить ему о поломанной ссылке.

        Потом, это не GUI программа, свою актуальность она не потеряет даже если автор забросит ее навсегда. Да в ней и сейчас столько возможностей, что непонятно, кому их может не хватить. Это не GnuCash, где шаг в сторону — упираешься в ограничения. А у меня GnuCash вообще похерил базу с финансовой информацией за год.
    • 0
      +1
      я тоже пользуюсь ledger, для установки ledger в osx есть brew
    • 0
      По теме, небольшой обзор начинающим использовать ledger cli.
  • +1
    А мне очень нравится AbilityCash — dervish.ru/
    Уже несколько лет ей пользуюсь. И даже плагин для загрузки курсов валют написал.

    Что сразу подкупает в программе — «человечный», а не «бухгалтерский» интерфейс.
    Программа написана именно для «ненапряжного домашнего учёта финансов». При этом гибкости ей не занимать. Хотите двойные проводки? — пожалуйста. Хотите товарный учёт? — запросто. Бюджет, несколько видов отчётов, загрузка курсов из интернета (хоть валют, хоть ПИФов, хоть биткоинов).

    Программа, правда, написана под Windows. Но судя по отзывам на форуме, должна нормально работать под Wine.
    • 0
      Работает под Wine, проверял в свое время.
      Действительно, из многих опробованных в свое время программ AbilityCash мне показалась наиболее удобной. Довольно долго учитывал домашние доходы-расходы в ней.

      Но месяца три назад перешел на Дзен-мани.
      • 0
        ладно в соц сетях всю переписку вести — все привыкли уже, но хранить в 3-rd party online сервисе да еще и без ясной модели монетизации… Как-то староват я для такого, видимо. Впрочем — я не показатель ибо соцсети тоже не шибко жалую своим вниманием…
        • 0
          А что вас пугает в таких онлайн-сервисах?
          • 0
            то что все мои финансовые потоки могут стать доступны ребятам с погонами, конкурентам (хотя это им реально сложно), да вообще кому бы то ни было из не доверительного мною интервала людей. Те же разработчики сервисов подобных заинтересовавшиеся аномальной активностью фин. потоков — залезшие в мои данные меня радовать не будут. Но я в последнее время вижу, что социальные сети научили людей заглушать подобную параною.
            • 0
              Но ведь достоверность таких данных очень сомнительна — она ничем юридически не подкреплена. Личные данные, как мне кажется, в таких сервисах хранить не предполагается.
              Разработчикам же, по-моему мнению, вообще пофиг кто какие данные вводит. Если только в целях монетизации обобщенную по всем пользователям использовать, чтобы как-то описывать аудиторию своего сервиса.
              Мне кажется, проблемы могу появляться только с вводом привязки личных средств оплаты.
              Я потому и спрашиваю, возможно я чего не вижу в использовании таких сервисов.
              • 0
                вот логически зачем каждый день вбивать в сервис неверные данные? ведь гарантии нету что эти неверные данные вообще кто-то посмотрит :) т.е. поскольку неверные данные вбивать нелогично — то достоверность — очень даже не сомнительна. На суде может ее использовать и нельзя, но я бы данным из этого сервиса доверял бы — особенно если они наполнялись регулярно.
                Разработчики те же люди. А людей лучше не искушать. Ну а привязка банковских счетов это ведь кажется самое вкусное в этом сервисе.
                • 0
                  Я понимаю что разработчики скорее всего вообще даже и думать не думали некорректно использовать фин данные. Ну т.е. разработчики вероятно сделали сервис для себя и решили поделится с окружающими. не надо гадить в карму — это просто мое мнение — обходить online сервисы оперирующие личным пространством стороной… Был где-то даже тест в инете давно — куча личных вопросов — а потом страница на которой написано что мы послали все ваши ответы другу который дал вам ссылку на этот тест + если хотите можете послать ссылку другу — и его ответы прийдут вам на email… Попадались на такой «тест» куча народу…
                  • 0
                    В карму не гажу. Плюсанул. Собираю информацию, учитываю риски. Пока не определился вот использовать ли онлайн сервис, или достаточно таблички в экселе. Стэндэлон-програмки мне кажутся очень сложными, в первую очередь в плане интерфейса и понятности «куда нажимать». Онлайн сервисы этим подкупают.
                  • +1
                    Опять же, Web не очень привязан к ноуту/планшету/десктопу — украли, умер винт, словили блокировщик с шифрацией…
  • 0
    Для себя искал программу для учета, где можно быстро вводить расходы.
    В итоге написал свой велосипед. Больше года веду учет и пока доволен.
    Выложил на github, есть ссылка и на демо.
    • 0
      У «демы» проблемы с сертификатом, Firefox ругается.
      Может, расскажете в двух словах, в чём заключается ваше «быстро вводить»?
      • 0
        По быстрому вводу.
        На демо видно лучше.
        Если кратко, для фиксации движения (приход или расход) нужно
        1. указать дату — если не сегодня
        2. основное!, указать статью расхода — вводя текст будут предлагаться варианты из справочника, если статья новая — будет добавлена.
        Обычно нужно добавить статью в справочник прежде чем использовать, в моем варианте — быстро вводим название статьи и она добавляется в справочник если ее еще нет
        3. указать комментарий — если нужно
        4. указать сумму Прихода или Расхода.
        В сумме необходимо 2 (п1+п4) — 4 операции для фиксации движения.

        По сертификату
        Проект писался сразу с использованием ssl.
        Пока я не нашел способа получения бесплатного сертификата.

        • 0
          Возьмите www.startssl.com/, class 1 у них бесплатный.
        • 0
          если статья новая — будет добавлена

          А не приведёт это к разбуханию списка статей?
          Ввёл я, например, расход по статье «Ресторан». А в следующий раз забыл и записал его уже в статью «Кафе».

          Что, кстати, у вас с иерархией статей? Для анализа обычно полезно, когда статья «Хлеб» является частью статьи «Продукты».
          Или авто-дополнение у вас настолько умное, что и этот случай принимает во внимание?

          У каждого, конечно, свой подход. Соотношение расходов по статьям — уже неплохо.
          Но лично мне, например, ещё нужно знать, где и сколько денег у меня есть в данный момент: в кошельке, в банке, на кредитке.
  • 0
    От разбухания — объединение статей.

    Иерархия — только 2 уровня категория статей и статья.

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

    на основной странице есть скрины сайта, и демо логины

    одной из причин написания своего велосипеда — запуск локально с доступом через веб

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.