Идеальная архитектура домашней бухгалтерии

Начиная, наверное, с 2004 года, я непрерывно веду домашнюю бухгалтерию. Важную роль в этом деле сыграло знакомство с программой SPB Pocket Finance для наладонных компьютеров. Раньше я думал, что причина того, что мне легко вести учет в том, что я веду его на КПК, но потом понял, что важнее принципы архитектуры, положенные в основу этой программы.

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

Программа домашней бухгалтерии кажется настолько простой, что многие начинают ее писать с нуля. Я сам пробовал вести учет в Excel, в Access, в 1с7, но только в SPB Pocket Finance смог вести учет. На рынке очень много программ для домашней бухгалтерии, но многие из них допускают архитектурные ошибки, которые лишают их популярности и удобства.

Основные принципы домашней бухгалтерии

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

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

Идеальная архитектура

Далее будет рассмотрена идеальная архитектура, с комментариями, чем она лучше других архитектур.

Кошельки

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

Кошелек – это и обычный кошелек, где хранятся наличные, и счет в банке, и пластиковая карта.

Перемещение денег

Деньги можно перекладывать из кошелька в кошелек. Если кошельки в разных валютах, то сумма прихода может быть не равна сумме расхода – происходит конвертация по некоторому курсу.

Долги

Долги можно рассматривать как кошельки. При перемещении денег в кошелек долга мы даем в долг, при получении денег из кошелька мы берем в долг (или забираем долг обратно).

Для аналитического учета необходимо хранить остатки в таких кошельках в разрезе контрагентов и при операциях перемещения указывать контрагентов.

Инвентаризация

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

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

Учитываемые значения

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

Аналитика

Для каждого движения можно уточнить:

1.       В рамках какого проекта осуществляется движение

2.       Какой контакт участвует в движении

3.       Статья доходов/расходов – по какой статье осуществляется приход или расход денег.

Другая аналитика обычно не используется в домашней бухгалтерии.

В качестве проектов можно использовать например:

·          «Работа» - расходы, связанные с работой

·         «Командировка в Минск» - расходы, связанные с командировкой в Минск

·         «Аутсорсинг» - доходы, связанные с аутсорсингом

Пересчет валют для отчетов

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

Учет по каждому кошельку ведется в валюте кошелька.

Если нужно отчет привести к единой валюте, то каждое движение пересчитывается по курсу валюты кошелька к валюте отчета на дату операции.

Набор документов

Такой простой набор объектов учета позволяет реализовать основные операции небольшим набором документов:

1.       Поступление денег в кошелек

2.       Расход денег из кошелька

3.       Перемещение денег между кошельками

Заключение

Пример реализации архитектуры вы можете посмотреть в моей конфигурации PIM.