Skip to content
This repository has been archived by the owner on Aug 19, 2020. It is now read-only.

14. Метод двойной записи, Простой текстовый учет (Plain Text Accounting)

Ivan Che edited this page May 8, 2020 · 2 revisions

← Вернуться на главную
← Назад: 13. Уравнения в бухгалтерском учете (Accounting Equations)

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

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

2016-12-06 * "Biang!" "Dinner"
Liabilities:CreditCard   -47.23 USD
Expenses:Restaurants

Вы записываете много таких деклараций в файл, а Beancount считывает их и создает соответствующие структуры данных в памяти.

Проверка (Verification). После парсинга транзакций Beancount также проверяет правило метода двойной записи: он проверяет, что сумма сообщений по всем вашим транзакциям равна нулю. Если вы сделаете ошибку и запишете транзакцию с ненулевым балансом, то будет отображена ошибка.

Балансовые утверждения (Balance Assertions). Beancount позволяет реплицировать балансы, объявленные с внешних счетов, например, баланс, написанный на ежемесячной выписке. Он обрабатывает их и проверяет, совпадают ли остатки, полученные от ваших входных операций, с заявленными остатками. Это помогает легко обнаруживать и находить ошибки.

Плагины (Plugins). Beancount позволяет создавать программы, которые могут автоматизировать и/или обрабатывать потоки транзакций во входных файлах. Вы можете построить пользовательскую функциональность, написав код, который непосредственно обрабатывает поток транзакций.

Запрос и отчетность (Querying & Reporting). Он предоставляет инструменты для последующей обработки этого потока транзакций для получения отчетов, о которых мы говорили ранее в этом документе.

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

Далее: 15. C точки зрения таблиц (The Table Perspective) →

Ссылки и пояснения

Clone this wiki locally