Каталог решений - Мобильное приложение для учета личных финансов

Мобильное приложение для учета личных финансов

Мобильное приложение для учета личных финансов

В наличии

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

Категория:

Описание

В какой-то момент понял, что мне нужно вести учет расходов. Я попробовал много разных программ на Android для ведения учета, но так и не нашел для себя подходящую. Как мне кажется, основная проблема всех программ, что они довольно простые: если пришли деньги на счет, это доход, если списались деньги со счета, это расход. А в жизни все сильно сложнее. В итоге я решил написать свою программу на мобильной платформе. Старался, чтобы в моей программе можно было отразить любую финансовую операцию обычного человека, даже довольно сложную: вплоть до того, что я купил стол за 1000 рублей, продал его за 2000 рублей и в доходах отразился просто доход 1000р. Чтобы когда мне выставляют счет за интернет, я сразу мог его зафиксировать, становясь должником. Постоянно что-то дорабатывал и переделывал, т.к. всегда менялись желания и находились недостатки в том или ином способе решения. Со временем я выработал для себя наиболее подходящую методику учета.

Скачать и посмотреть программу можно по ссылке https://play.google.com/store/apps/details?id=com.dds.moneylab

Вот основные особенности, которых мне не хватало в других программах:

#1. Дополнительное поле Товар/Услуга

Самое главное, что я понял в учете: не так важно, на что ты тратишь деньги, главное это для чего ты тратишь деньги. Например, при покупке тортика, у вас могут быть совершенно разные мотивы:

1.Вы идете в гости к другу и купили тортик, чтобы не с пустыми руками приходить.

2.Или сегодня ваш день рождения и вы купили тортик на работу, т.к. там так принято.

3.Или вы купили его себе, чтобы просто поесть.В первом случае расходы можно списать на статью «Развлечения/Отдых/Друзья», во втором случае, это «Работа», а в третьем это «Еда». Разные статьи расходов, но товар один и тот же. Я решил фиксировать в своей программе и статью, и товар.

Статья доходов/расходов – отвечает на вопрос: для чего я трачу деньги? 

Товар/Услуга – отвечает на вопрос: на что я трачу деньги?

 

 

 

Это позволяет на одну статью расходов записывать разные фактические расходы. И одинаковые фактические расходы разносить по разным статьям.

Еще я понял, что статей расходов должно быть максимум 15-20 штук, и они должны очень редко добавляться и изменяться. Добавиться они могут только с сильными изменениями в образе жизни, например, родились дети. Редко они должны меняться, так как нам нужно сравнивать расходы по одной и той же статье, а если у вас каждый раз они другие, то сравнивать будет невозможно. 

Со временем для себя выделил такие статьи:

Личные:

1. Заработок основной — это основное место работы программистом и подработка программированием. Сюда же заношу расходы на подарки коллегам на дни рождения и доходы, когда они мне дарят. Если я на работу езжу на такси или каршеринге, то тоже заношу сюда. 

2. Заработок прочее — это депозиты, инвестиции, кешбек и т.д.

3. Разовые траты — Это одежда, бытовая техника, телефоны, одежда и т.д.

4. Регулярные траты — Коммунальные услуги, Аренда квартиры, Интернет и сотовая связь, Стрижка, СМС информирование банков и т.д.

5. Еда — это продукты питания для дома. И сопутствующие расходы на доставку еды до дома: такси, аренда парковки, каршеринг или оплата курьеру.

6. Еда на работе — в основном это столовые и кафе, кофейня внизу офиса, или просто продукты в магазине, которые я покупаю для того что бы поесть на работе.

7. Здоровье и фитнес — все расходы на врачей и на спорт. Анализы, лечебный массаж, зубные врачи,  абонемент в спортзал, витамины, одежда для спорта.

8. Обслуживание автомобиля — все расходы на авто, запчасти, сервис. Бывает, что за автомобилем в сервис я езжу на каршеринге, его тоже сюда добавляю.

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

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

Расходы на других людей:

11. Девушка — это расходы на мою любимую, например подарки и цветы девушке, сходить в ее любимый ресторан,  в который я бы не пошел один

12. Родители — Переводы денег родителям, покупка им бытовой техники или оплаты их счетов.

13. Друзья — Очень редко, моим друзьям требуется помощь, и тогда расходы записываю сюда. Если мне друзья помогут, то я тоже сюда их занесу.

14. Пожертвования — Перечисления в благотворительные фонд, которые я иногда делаю или просто дам денег бродяге или музыканту, хотя я редко это делаю.

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

#2. Статьи учета не делятся на доходные и расходные.

Например: Я ездил на каршеринге до работы, потратив 356,8р. Это расходная операция. Потом мне выплатили зарплату 100 000 руб. Это доходная операция. Обе операции по статье "Заработок". В итоге я вижу, сколько всего заработал. (Картинка 3 это итог в отчете по статье Заработок. Картинка 4 это расшифровка отчета)

 

   

 

#3. Списание денег это не всегда расход. Поступление денег, это не всегда доход.

Я добавил возможность в своей программе компенсировать расход, который я оплатил.

Пример: Сидим в кафе с друзьями. В конце встречи, я решил оплатить весь счет на 2869р с карты Сбербанка. Друзья переводят мне деньги по 1000р., один на Альфабанк, другой дал наличными. Сумма которую я оплатил 2869р, это не реальный расход. А суммы, которые мне переводят друзья, это не доход.

Как я буду эту ситуацию отражать в программе:

1. Я завожу расход на 2869р. Потом нажимаю на кнопку "Компенсировать покупку"(рис. 1)

 

 

2. Открывается форма "Компенсация расхода", где я заполняю суммы перевода и кошелек. Контрагента можно не указывать, но  всегда заполняю, мне так удобнее. Жмем кнопку ОК(рис. 2).

 

 

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

   

 

В других программах такая ситуация обычно отражается довольно сложно: Нужно внести расход на сумму, которую нужно будет самостоятельно рассчитать 2869р-1000р-1000р = 869р. Потом сделать перевод с Сбербанка на Альфабанк на 1000р и сделать еще один перевод с Сбербанка на Кошелек 1000р.

У меня это работает с помощью механизма продажи товаров, который у себя реализовал: В доходной операции можно указать товар, который приобретался ранее. Появится поле Сумма покупки, которая заполнится автоматически суммой покупки. Если вам нужно продать только половину, то уменьшите сумму покупки.

 

 

С основными особенностями я закончил, дальше кратко перечислю остальные фишки программы:

1. Добавил в операцию поле Контрагент(Покупатель/Продавец). Вначале я это сделал, чтобы вспомнить, где я потратил деньги. Т.к. бывает, смотришь в отчет: потратил 1200 в кафе. Но никак не можешь вспомнить, что это было. А когда видишь Контрагента, сразу вспоминаешь. Вообще мой мозг чаще запоминает места, где я тратил, а не абстрактные расходы. Потом я сделал, чтобы при выборе контрагента реквизиты Кошелек, Статья, Товар заполнялись данными из прошлой операции. Как оказалось, это очень удобно, т.к. ускорило ввод операции и уже не нужно думать, чем заполнять операцию. В 90% случаев они повторяются.

2.Можно указать несколько строк в одной операции. Например, вы купили в супермаркете продукты питания и подарки. Так удобнее сверяться с банковской выпиской: одна операция = одна банковская транзакция.

 

 

3. Сделал, чтобы можно было получать или отдавать товары/услуги в долг. Например, если вы вернули товар в магазин, деньги к вам приходят не сразу. Т.е. до зачисления денег, вам должен магазин. И чтобы это не забыть, вы можете отгрузить товары в долг магазину. А когда фактически поступят деньги, вы отражаете погашение долга. В моей программе есть учет взаиморасчетов с контрагентами. Где вы можете отгружать или получать различную номенклатуру контрагентам, уменьшая и увеличивая задолженность.

 

 

4. Сделал, чтобы валюта списывалась по среднему курсу ее покупки. Это удобно, когда покупаешь регулярно валюту, и средний курс сильно отличается от текущего. В итоге в отчетах отражается сумма в рублях, которую реально потратил.

5. Добавил метки в операции. С их помощь удобно собирать все расходы в путешествии, чтобы всегда можно было посмотреть, на что и сколько тратил. Раньше я под каждое путешествие создавал свою статью "Путешествие в Тайланд", "Путешествие в Калугу". После добавления меток я стал все расходы распределять как обычно: Билеты на на статью "Развлечения", расходы на еду на статью "Еда" итд. И все расходы помечал метками "Путешествие в Лосанжелес" или "Путешествие в Нижний Новгород".

С особенностями я закончил. Остальное у меня, так же как и у всех:

Журнал операций

 

 

 

Список с остатками денег на кошельках:

 

 

 

Страничка с текущим состоянием. Фактически это одна длинная страница, которую нужно пролистывать, для этой статьи разделил на два скриншота.

 

 

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

Кратко расскажу, как устроена программа архитектурно: Я создал базовые операции: Поступление товаров(+образует наш долг), Списание товаров(+образует долг контрагента), Поступление денег(+образует наш долг), Списание денег(+образует долг контрагента), Списание товаров на расход, Поступление денег на прибыль, Перемещение денег.

Комбинируя эти операции, можно получить любую реальную операцию. Например, документ Расход состоит из Поступление товаров(+образует наш долг), Списание денег(+закрывает наш долг) и Списание товаров на расход. Операция "Расход в долг" это Поступление товаров(+образует наш долг), Списание товаров на расход. 

Изначально у меня операции Доход и Расход назывались Покупка и Продажа, товар/услуга называлось "Номенклатура", статья расходов была "Проектом", а "Покупатель/Продавец" был контрагентом. Все эти изменения связаны с адаптацией под обычного пользователя. Хотя мне кажется, мои названия отражают суть реквизитов более точно.

Очень много времени ушло на интерфейс. 1С, конечно, в этом плане сильно ограничена. Долго мучался, чтобы в списке операций дата отображалась только один раз. Постоянно применял костыли: например в динамическом списке в мобильной платформе не работает отбор по табличной части ссылки, хотя на десктопе отрабатывает корректно. Постоянно гнал от себя мысль, начать разрабатывать HTML интерфейс. В платформе 8.3.18 1С что-то поменяли в алгоритмах отображения, что все подписи нижнего меню обрезаются на половине слов, хотя места хватает. Поэтому пришлось откатиться на 8.3.17. В очередной раз убеждаюсь, что на 1С можно писать приложения только для внутреннего использования.

Когда я стал делать программу для других людей, понял, насколько это сложнее, чем просто для себя. Во-первых, у вас уже нет доступа к базе данных. Поэтому нужно очень хорошо продумывать структуру данных, т.к. исправить будет сложно. Удалять и переименовывать реквизиты нельзя. Если вы совершили косяк, то единственная возможность его исправить — это запустить свой обработчик после обновления. Во-вторых, нужно иметь в виду, что обновления могут пропускаться. В-третьих, пользователи не понимают, как это реально работает, поэтому нужно везде ставить защиту от дурака, чтобы не появлялось кривых данных, из-за которых рухнет потом система. В-четвертых, бывает очень сложно повторить ошибку у себя, т.к. доступа к базе нет, а пользователь прислал только скрин ошибки. 

Когда разрабатывал, смотрел примеры других мобильных программ на 1С, такие как Бюджет от Рарус, Миниденьги, и Бухгалтер в кармане. Использовал материалы с Инфостарта. Из некоторых приложений скопировал картинки)  

И в завершение: Сейчас моей программой реально пользуется трое моих близких знакомых, которые там ведут учет более полугода, поэтому я постоянно дорабатываю программу, исправляю баги и привожу в человеческий вид. Код выкладывать не буду, так как за него стыдно. А программу можно скачать из Google play по ссылке https://play.google.com/store/apps/details?id=com.dds.moneylab

Буду рад любой вашей критике, советам или отзывам.

has been added to your cart:
Оформление заказа