Питання нижче взято из спільноти простих текстів для бухгалтерії — Reddit, Hacker News, список рассылки Beancount — и охватывают, как практика работает. Для питань про сам сервіс Beancount.io (ціни, тарифи, поддержку, управління акаунтами) дивіте FAQ продукту.
Начало работы
Скілько бухгалтерії мне нужно знати, перш ніж начать?
Пять концепцій, не диплом. Вам нужно п'ять типів акаунтів (активи, пасиви, капитал, доходи, расходи), ідея, що каждая транзакция переносит вартість між принаймні двома из них, і правило, що транзакция повинна бути збалансована. Beancount виконує все інше за вас — он мітить любую транзакцию, числа в якій не сходятся, как помилку, а не приймає её молча, так що программний код ловит ошибки, які новичок інакше пропустил бы.
Начните з Introduction to Beancount, держите Glossary відкритим в окне, и добавьте первые транзакции в Quick Start.
Где в Beancount дебет и кредит?
Beancount вообще не использет слова "дебет" и "кредит" — он использет числа с знаком, которые в суммі дають ноль. Гроші, що уходят с акаунта, — это минус, приходящие — плюс, и транзакция валидна, когда её записи взаимно компенсируются. Это та же двойная запись бухгалтерії, що робят бухгалтера, но без слов, які запутывают новичков.
Если вы использовали традиционное бухгалтерское ПО, то перевод такой: дебет — это позитивне число, а кредит — негативне. Смотрите Language Syntax для того, как записи пишутся, или Debits and Credits Explained для бухгалтерской подоплёки на простом языке.
Почему транзакции должны сходиться до нуля?
Потому что гроші всегда откуда-то приходят, и нулевая сумма — это то, что превращает этот факт в проверку на поч1ибку. Если вы тратите $40 на продукты, эти гроші ушли с банковского акаунта — записуя обе части, вы требуете, чтобы они взаимо компенсировались, и любая опечатка в любой сумме будет поймана как помилка, а не тихо даст неправильный баланс.
Вот почему простой текстовый журнал более надёжен, чем таблица расходов: сама структура самопроверяемая. Балансовое утверждение — это связанный механизм, который сверяет ваш журнал с реальностью.
Как настроить начальные балансы?
Запишите транзакцию на стартовую дату, которая переносит текущий баланс каждого
акаунта из Equity:Opening-Balances, затем добавьте утверждение balance, чтобы
зафиксировать его. Вам не нужно восстанавливать всю свою финансовую историю —
выберите стартовую дату, возьмите балансы какими они есть на тот день, и идите
вперёд.
Quick Start проходит через полный пример начальных балансов.
Насколько детальным должен быть мой план счетов?
Начните с крупно и разделяйте только тогда, когда более мелкое разделение изменило бы решение. Двадцать или около того акаунтов вполне достаточно для начала; если вы ловите себя на вопросе, должно ли "Expenses:Food" разделяться на продукты и рестораны, то полезный тест — изменили ли бы вы что-то в своих действиях, зная разделение.
Переименование и разделение позже — это замена в текстовом файле, так что стоимость простого начала низкая. Имена акаунтов вложены, так что вы можете начать с широкой категории и разделить её на под-акаунты позже, не переписывая историю — см. How to Design a Chart of Accounts если хотите структуру, которую можно скопировать.
Зачем простой текст?
Зачем использовать простой текст для бухгалтерії вместо таблицы?
Таблица не может сказать вам, когда она ошибается. Простой текст для бухгалтерії
принудительно использует двойную запись, так что каждая транзакция самопроверяемая,
и файл остаётся greppable, diffable и скриптовальным, пока существуют текстовые
файлы. Вы также получаете настоящую историю версий: git log по вашему журналу
показывает точно, что изменилось, когда и почему.
Практическое отличие проявляется при нескольких акаунтах, валютах или инвестициях, где односторонняя таблица тихо уходит в сторону от истины. Смотрите Transparent and Auditable Accounting.
Не есть ли двойная запись излишеством для личных финансов?
Если вы хотите только знать, сколько потратили на кофе, да — таблица подойдёт. Двойная запись окупается в тот момент, когда у вас несколько акаунтов, ипотека, брокерский счёт или более одной валюты, потому что именно в этих ситуациях односторонний учёт теряет гроші, не говоря вам об этом.
Полезный способ думать об этом: двойная запись — это контрольная сумма для ваших финансов. Смотрите Introduction для более длинного обоснования.
Нужно ли мне использовать командную строку?
Нет. Fava — это полноценный веб-интерфейс поверх того же текстового файла — балансовые отчёты, отчёты о доходах, графики и ввод транзакций — а Beancount.io запускает его для вас с вашим журналом в облаке. Текстовый файл остаётся источником истины, так что вы можете пользоваться веб-интерфейсом ежедневно и спускаться в терминал только тогда, когда захотите.
Смотрите UI Features для того, что может интерфейс, или попробуйте живое демо.
Ввод ваших данных
Как импортировать банковские транзакции в Beancount?
Большинство людей импортируют 80–95% транзакций и вводят остальные вручную. В порядке надёжности: прямое скачивание OFX/QFX из банка, экспорт CSV плюс правила импорта, подключение агрегатора и — только как последний вариант — PDF-выписка, конвертированная в CSV. Банковская синхронизация Beancount.io занимается подключением и категоризацией за вас.
Ожидайте, что нужно будет написать или поправить правило для каждого учреждения: CSV экспорт из банков печально известен своей непоследовательностью, и название продавца, содержащее незаэкранированную запятую, — это реальная и распространённая проблема. Смотрите Smart Import для автоматизированного пути.
Для разового файла два бесплатных браузерных конвертера делают механическую часть,
ничего не загружая: CSV to Beancount для экспорта из
таблиц и OFX & QIF to Beancount для загрузок .ofx,
.qfx, .qbo и .qif, которые предлагают банки, когда вообще не дают CSV.
Как избежать импорта одной и той же транзакции дважды?
Импортёры дедуплицируют по уже имеющимся в журнале записям, сверяя дату, сумму и плательщика, и помечают всё неоднозначное для подтверждения, а не угадывают. Обычный рабочий процесс помечает неуверенные импорты как отложенные, чтобы вы проверили их, прежде чем они станут частью постоянной записи.
OFX делает это проще, чем CSV: каждая транзакция имеет FITID, который банк
сохраняет стабильным при загрузках, так что импортёр может сверять по идентичности,
а не по предположениям — конвертер OFX сохраняет его
как поле метаданных id:.
Другая половина ответа — это переводы: деньги, переходящие между двумя акаунтами, которые вам принадлежат, появляются в обоих экспортах банков. Запишите это один раз как одну транзакцию с двумя записями.
Должен ли я давать третьей стороне мой банковский логин?
Нет — и для многих людей именно это является причиной использовать простой текст для бухгалтерії вообще. Вы можете сами экспортировать OFX или CSV из своего банка и никогда не передавать учётные данные агрегатору. Если вы предпочитаете автоматическую синхронизацию, Beancount.io использует санкционированный банком агрегатор, а не хранит ваш пароль от интернет-банка.
Читайте подробности на странице безопасности.
Как я сверяю свой журнал с банковской выпиской?
Добавьте утверждение balance для заключительной цифры выписки, с датой на день
после даты закрытия. Балансовые утверждения вычисляются в начале своей даты, так
что утреннее утверждение на следующий день — это то, что включает все транзакции через
последний день выписки. Если ваш журнал расходится с банком, bean-check сообщает
об ошибке Balance failed и завершает работу с ненулевым кодом, что превращает
сверку из ручного сравнения в то, что программное обеспечение проверяет при каждом
запуске.
Ежемесячной периодичности достаточно для большинства людей. Смотрите Filtering and Searching для поиска расхождения.
Валюты и инвестиции
Как Beancount работает с несколькими валютами?
Нативно, и это одно из его сильнейших преимуществ перед потребительскими
финансовыми приложениями. Каждая сумма несёт свою валюту, акаунты могут держать
несколько одновременно, а конвертации записываются явно с @ для цены или {} для
себестоимости, так что изменение обменного курса никогда молча не переписывает вашу
историю.
Ничто не конвертируется за вашей спиной — вы всегда видите и исходную валюту, и конвертированное значение. Смотрите Language Syntax, Precision & Tolerances и Multi-Currency Accounting для бухгалтерской стороны.
Как отслеживать себестоимость и прирост капитала?
Записывайте покупки с себестоимостью в фигурных скобках — 10 AAPL {150.00 USD} — и
Beancount отслеживает каждую партию отдельно. Когда продаёте, вы указываете, какую
партию уменьшаете, и прирост капитала получается автоматически из арифметики, а не
вычисляется вручную.
Beancount поддерживает методы бухучёта STRICT, FIFO, LIFO и NONE. Учёт по средней себестоимости парсится, но не полностью реализован — если ваша налоговая юрисдикция требует среднюю себестоимость, планируйте отслеживать её с помощью плагина или явных партий. Смотрите Inventory Management.
Как записывать крипто-торги и их себестоимость?
Точно так же, как любой другой товар: криптовалюта — это единица с себестоимостью, так что та же механика партий и методов бухучёта применима. Обмен одного токена на другой — это одна транзакция, которая уменьшает одну партию и открывает другую, что также является способом получить реализованную прибыль, которую большинство налоговых органов требует указывать.
Смотрите Cryptocurrency Portfolio Tracking и готовые крипто-шаблоны.
Бизнес и фриланс-книги
Можно ли использовать Beancount для малого бизнеса, или это только для личных финансов?
Бизнесы используют его, включая компании с сотнями тысяч транзакций. Он поддерживает аккруальный учёт, много-субъектные структуры и отчёты, которые ожидает бухгалтер. Честные ограничения: нет совместного редактирования несколькими пользователями, нет встроенного интерфейса для выставления счетов и нет рабочего процесса утверждения кредиторской задолженности — это журнал, а не ERP.
Смотрите Industry-Specific Setups и Open Ledger — витрину реальных книг компаний.
Должен ли я вести отдельные журналы для личных и бизнес-финансов?
Держите их раздельно — либо как отдельные деревья акаунтов верхнего уровня в одном
файле, либо как два файла, объединённые через include. Смешивание их делает отчёт о
доходах бизнеса бессмысленным и усложняет налоговую пору, а разделение ничего не стоит
на старте.
Два файла обычно чище, когда у бизнеса уже есть свой банковский счёт. Смотрите Multi-File Support.
Как работать со счетами и дебиторской задолженностью?
Моделируйте дебиторскую задолженность как акаунт активов, а кредиторскую — как пассив, затем записывайте счёт, когда выставляете его, и платеж, когда он приходит — это аккруальный учёт, и Beancount поддерживает его напрямую. Чего в нём нет — это интерфейса выставления счетов: он отслеживает, что вам должны, но не генерирует и не отправляет счёт.
Смотрите Financial Reporting Templates для отчётной стороны, Industry-Specific Setups для примеров и Understanding Accounts Receivable для концепций.
Как передать свои книги бухгалтеру в налоговую пору?
Лучше экспортируйте отчёты, а не журнал. Ваш бухгалтер почти наверняка не хочет текстовый файл — ему нужны отчёт о доходах, балансовый отчёт и список транзакций, которые можно получить в виде CSV или PDF из веб-интерфейса или с помощью запроса.
Смотрите Tax Preparation Guides, Financial Reporting Templates и Query with SQL для извлечения точных цифр, которые он просит.
Инструменты и экосистема
Как различаются Beancount, Ledger и hledger?
Все три — это системы двойной записи в простом тексте с похожими форматами файлов. Ledger — исходный и самый снисходительный парсер; hledger — переосмысление на Haskell, известный дружелюбными правилами импорта CSV и документацией; Beancount — со строгим парсером и самой сильной поддержкой инвестиций, партий и нескольких валют, плюс Python-плагинный API.
Строгость — это реальный компромисс: Beancount отказывается загружать файл, который находит неоднозначным, что ловит ошибки рано за счёт большей придирчивости. Смотрите Beancount vs Ledger CLI и Beancount vs hledger.
Поддерживает ли Beancount бюджет по конвертам, как YNAB?
Нативно нет — это настоящий пробел, а не скрытая функция. Встроенное бюджетирование в Beancount ограничено, и люди, которым нужно строгое поведение конвертов, обычно используют плагин сообщества или моделируют конверты как акаунты.
Если бюджетирование по конвертам — главное, что вам нужно, прочитайте Beancount vs YNAB перед переходом. О том, что работает сегодня, см. Budgeting in Beancount.
Можно ли прикреплять чеки к транзакциям?
Да. Директива document связывает файл с акаунтом и датой, а веб-интерфейс позволяет
загружать и просматривать эти документы рядом с транзакциями, к которым они относятся.
Чеки остаются обычными файлами на диске, поэтому они так же переносимы, как и сам
журнал.
Смотрите UI Features.
Есть ли мобильное приложение?
Насколько большим может стать журнал, прежде чем замедлится?
Десятилетие личных финансов — это несколько мегабайт и загружается за долю секунды.
Beancount пересчитывает балансы из полной истории транзакций при каждой загрузке, и это
остаётся быстрым до сотен тысяч записей. После этого пределом является удобство
редактирования и диффинга, а не время загрузки: разделение по годам с include
держит отдельные файлы маленькими, но включённые файлы всё равно образуют один
объединённый журнал, который Beancount загружает и пересчитывает полностью, так что это
организационное удобство файлов, а не ускорение или способ вести отдельные книги.
Смотрите Multi-File Support для того, как разделить растущий журнал.
Всё ещё застряли?
Help Center индексирует полную документацию, а Glossary определяет любой термин выше, который был незнаком.