Вопросы ниже пришли из сообщества любителей бухгалтерии в простом тексте — Reddit, Hacker News, рассылки Beancount — и касаются того, как эта практика устроена. По вопросам о самом сервисе Beancount.io (цены, тарифы, поддержка, управление аккаунтом) смотрите FAQ по продукту.
С чего начать
Насколько много мне нужно знать о бухгалтерии, чтобы начать?
Примерно пять понятий, а не диплом. Вам нужны пять типов счетов (активы, обязательства, капитал, доходы, расходы), мысль о том, что каждая транзакция перемещает стоимость как минимум между двумя из них, и правило, что транзакция должна сходиться. Остальное Beancount обеспечивает за вас — он помечает любую транзакцию, числа в которой не сходятся, как ошибку, а не принимает её молча, поэтому программа ловит ошибки, которые новичок иначе бы пропустил.
Начните с Введения в Beancount, держите Глоссарий открытым на вкладке и добавьте свои первые транзакции в Быстром старте.
Где в Beancount дебет и кредит?
Beancount вообще не использует слова «дебет» и «кредит» — он использует числа со знаком, которые должны суммироваться в ноль. Деньги, покидающие счёт, отрицательны, деньги, поступающие на счёт, положительны, а транзакция действительна, когда её проводки взаимно сокращаются. Это та же двойная запись, которую ведут бухгалтеры, но без терминологии, сбивающей с толку новичков.
Если вы пользовались традиционным бухгалтерским ПО, перевод такой: дебет — это положительное число, а кредит — отрицательное. Смотрите справочник по Синтаксису языка, чтобы узнать, как записываются проводки, или Дебет и кредит простыми словами для бухгалтерской основы простым языком.
Почему транзакции должны балансироваться до нуля?
Потому что деньги всегда откуда-то приходят, и именно нулевая сумма превращает этот факт в проверку на ошибки. Если вы тратите $40 на продукты, эти деньги ушли с банковского счёта — запись обеих частей означает, что они должны взаимно сократиться, и любая опечатка в любой из сумм помечается как ошибка, а не тихо приводит к неверному балансу.
Именно поэтому реестр в простом тексте надёжнее таблицы расходов: сама структура самопроверяющаяся. Утверждение о балансе — связанный механизм, который сверяет ваш реестр с реальностью.
Как мне настроить начальные остатки?
Запишите транзакцию на вашу начальную дату, которая переносит текущий баланс каждого счёта из
Equity:Opening-Balances, затем добавьте утверждение balance, чтобы зафиксировать его. Вам не нужно
восстанавливать свою финансовую историю — выберите начальную дату, возьмите балансы такими, какие они есть в этот
день, и двигайтесь дальше оттуда.
Быстрый старт содержит полный пример начальных остатков.
Насколько детальным должен быть план счетов?
Начните с крупных категорий и делите только тогда, когда более дробное деление изменило бы решение. Примерно двадцати счетов вполне достаточно для начала; если вы ловите себя на вопросе, стоит ли в «Expenses:Food» отделять продукты от ресторанов, полезная проверка — стали бы вы вообще делать что-то иначе, зная это деление.
Переименовать и разделить позже — это найти-и-заменить в текстовом файле, так что цена того, чтобы начать просто, невелика. Названия счетов вложены друг в друга, так что можно начать с широкой категории и позже разделить её на подкатегории, не переписывая историю — смотрите Как спроектировать план счетов, если хотите структуру, которую можно скопировать.
Почему открытый текст?
Зачем использовать бухгалтерию в виде открытого текста вместо электронной таблицы?
Таблица не может сказать вам, когда она неверна. Бухгалтерия в простом тексте обеспечивает двойную запись,
так что каждая транзакция самопроверяющаяся, а файл остаётся доступным для grep, diff и
скриптов, пока существуют текстовые файлы. Вы также получаете настоящую историю версий: git log по
вашему реестру показывает точно, что изменилось, когда и почему.
Практическая разница проявляется при нескольких счетах, валютах или инвестициях, где таблица с одиночной записью тихо уходит от истины. Смотрите Прозрачная и проверяемая бухгалтерия.
Не является ли двойная запись излишеством для личных финансов?
Если вы просто хотите знать, сколько потратили на кофе, то да — таблицы достаточно. Двойная запись оправдывает себя в тот момент, когда у вас несколько счетов, ипотека, брокерский счёт или больше одной валюты, потому что это как раз те ситуации, где учёт с одиночной записью теряет деньги, не сообщая вам об этом.
Полезный способ думать об этом: двойная запись — это контрольная сумма для ваших финансов. Смотрите Введение для более длинного обоснования.
Нужно ли мне пользоваться командной строкой?
Нет. Fava — это полноценный веб-интерфейс поверх того же текстового файла —
балансовые отчёты, отчёты о прибылях и убытках, графики и ввод транзакций — а Beancount.io запускает его
для вас с вашим реестром в облаке. Текстовый файл остаётся источником истины, так что вы можете
использовать веб-интерфейс в повседневной работе и спускаться в терминал только когда захотите. Если вы всё же предпочитаете
терминал, командная строка bea создаёт, проверяет и составляет отчёты по тому же файлу — смотрите
Быстрый старт по CLI.
Смотрите Возможности интерфейса, чтобы узнать, что умеет интерфейс, или попробуйте живую демонстрацию.
Ввод данных
Как мне загрузить банковские транзакции в Beancount?
Большинство людей импортируют 80–95% транзакций и вводят остальное вручную. В примерном порядке убывания надёжности: прямая выгрузка OFX/QFX из банка, экспорт CSV плюс правила импорта, подключение агрегатора и — только в крайнем случае — выписка PDF, сконвертированная в CSV. Банковская синхронизация в Beancount.io берёт на себя подключение и категоризацию за вас.
Ожидайте, что придётся написать или скорректировать правило для каждого учреждения: экспорт CSV из банков печально известен своей непостоянностью, а название продавца с неэкранированной запятой — реальная и распространённая проблема. Смотрите Умный импорт для автоматизированного пути.
Для разового файла два бесплатных браузерных конвертера выполняют механическую часть, ничего не загружая:
CSV в Beancount для экспорта из таблиц и
OFX и QIF в Beancount для загрузок .ofx, .qfx, .qbo и .qif,
которые банки предлагают, когда вообще не дают CSV.
Как избежать двойного импорта одной и той же транзакции?
Импортёры устраняют дубликаты по записям, уже присутствующим в вашем реестре, сопоставляя по дате, сумме и получателю, и помечают всё неоднозначное для вашего подтверждения, а не угадывают. Обычный рабочий процесс помечает неопределённые импорты как ожидающие, чтобы вы проверили их до того, как они станут частью постоянной записи.
OFX упрощает это по сравнению с CSV: каждая транзакция несёт FITID, который банк сохраняет стабильным
между загрузками, поэтому импортёр может сопоставлять по идентичности, а не по догадке —
конвертер OFX сохраняет его как поле метаданных id:.
Другая половина ответа — переводы: деньги, движущиеся между двумя счетами, которыми вы владеете, появляются в экспорте обоих банков. Запишите это один раз как одну транзакцию с двумя проводками.
Должен ли я давать кому-то третьему доступ к моему банковскому логину?
Нет — и для многих людей это вообще причина использовать бухгалтерию в простом тексте. Вы можете сами выгрузить OFX или CSV из своего банка и никогда не передавать учётные данные агрегатору. Если вы предпочитаете автоматическую синхронизацию, Beancount.io использует одобренный банками агрегатор, а не хранит ваш пароль от онлайн-банкинга.
Читайте подробности на странице безопасности.
Как мне сверить мою книгу с банковской выпиской?
Добавьте утверждение balance для закрывающей суммы из выписки, датированное днём после
даты закрытия. Утверждения о балансе вычисляются на начало их даты, поэтому утверждение следующего
утра включает все транзакции по последний день выписки. Если ваш реестр расходится с банком, bea check сообщает об ошибке
Balance failed и завершается с ненулевым кодом, что превращает сверку из ручного сравнения в то, что программа
проверяет при каждом запуске.
Ежемесячного ритма достаточно для большинства людей. Смотрите Фильтрацию и поиск, чтобы отследить расхождение.
Валюты и инвестиции
Как Beancount работает с несколькими валютами?
Нативно, и это одно из его сильнейших преимуществ перед потребительскими финансовыми приложениями. Каждая
сумма несёт свою валюту, счета могут держать несколько валют сразу, а конвертации записываются
явно с @ для цены или {} для стоимости, так что изменение обменного курса никогда не переписывает вашу историю
молча.
Ничего не конвертируется за вашей спиной — вы всегда видите и исходную валюту, и сконвертированное значение. Смотрите Синтаксис языка, Точность и допуски и Мультивалютный учёт для бухгалтерской стороны.
Как поддерживать цены оценки в актуальном состоянии?
Используйте Живые цены для поддерживаемых активов в размещённом реестре Beancount.io или загружайте котировки в локальные файлы цен для upstream Beancount и Fava. Средство выбора позволяет выбрать валюту котировки и скопировать управляемые include. Совместимые версии bea также поддерживают управляемые include; руководство по настройке ссылается на их инструкции.
Управляемые цены влияют на рыночную оценку, а не на суммы транзакций или базу стоимости. Ваша собственная цена имеет приоритет для той же даты и пары. Обновления могут использовать устаревшие кэшированные цены во время сбоя, и более поздняя котировка не может заполнить пропущенную историческую дату оценки.
Как отслеживать стоимость приобретения и прирост капитала?
Записывайте покупки со стоимостью в фигурных скобках — 10 AAPL {150.00 USD} — и Beancount отслеживает каждую
партию отдельно. Когда вы продаёте, вы указываете, какую партию уменьшаете, и прирост капитала
получается из арифметики автоматически, а не вычисляется вручную.
Beancount поддерживает методы учёта STRICT, FIFO, LIFO и NONE. Учёт по средней стоимости разбирается парсером, но не полностью реализован — если ваша налоговая юрисдикция требует средней стоимости, планируйте отслеживать её с помощью плагина или явных партий. Смотрите Управление запасами.
Как записывать криптовалютные сделки и их стоимость приобретения?
Точно так же, как любой другой товар: криптовалюта — это единица со стоимостью, поэтому применяются те же механизмы партий и учёта. Обмен одного токена на другой — это одна транзакция, которая уменьшает одну партию и открывает другую, и именно так вы получаете реализованный прирост, который большинство налоговых органов хотят видеть в отчётности.
Смотрите Отслеживание криптовалютного портфеля и готовые шаблоны для крипты.
Бизнес и фриланс
Можно ли использовать Beancount для малого бизнеса, или он только для личных финансов?
Бизнес использует его, включая компании с сотнями тысяч транзакций. Он справляется с учётом по методу начисления, структурами с несколькими юрлицами и отчётами, которые ожидает бухгалтер. Честные ограничения: нет многопользовательского одновременного редактирования, нет встроенного интерфейса для выставления счетов и нет процесса утверждения кредиторской задолженности — это реестр, а не ERP.
Смотрите Отраслевые настройки и Открытый реестр — витрину реальных книг компаний.
Стоит ли вести отдельные книги для личных и бизнес-финансов?
Держите их отдельно — либо как разные деревья счетов верхнего уровня в одном файле, либо как два файла,
объединённых с помощью include. Смешивание делает отчёт о прибылях и убытках бизнеса бессмысленным и
усложняет подготовку налогов, а разделение ничего не стоит на старте.
Два файла обычно более чистый выбор, как только у бизнеса появляется собственный банковский счёт. Смотрите Поддержку нескольких файлов.
Как учитывать счета-фактуры и дебиторскую задолженность?
Моделируйте дебиторку как счёт активов, а кредиторку как обязательство, затем записывайте счёт, когда вы его выставляете, и платёж, когда он приходит — это учёт по методу начисления, и Beancount поддерживает его напрямую. Чего у него нет, так это интерфейса для выставления счетов: он отслеживает, сколько вам должны, но не создаёт и не отправляет счёт.
Смотрите Шаблоны финансовой отчётности для отчётной стороны, Отраслевые настройки для проработанных примеров и Понимание дебиторской задолженности для концепций.
Как передать мои книги бухгалтеру во время налоговой отчетности?
Экспортируйте отчёты, а не реестр. Ваш бухгалтер почти наверняка не хочет текстовый файл — ему нужны отчёт о прибылях и убытках, балансовый отчёт и список транзакций, которые вы можете получить в виде CSV или PDF из веб-интерфейса или с помощью запроса.
Смотрите Руководства по подготовке налогов, Шаблоны финансовой отчётности и Запросы с SQL, чтобы вытащить именно те числа, которые они просят.
Инструменты и экосистема
Чем отличаются Beancount, Ledger и hledger?
Все три — системы двойной записи в простом тексте с похожими форматами файлов. Ledger — оригинал и самый снисходительный парсер; hledger — переписывание на Haskell, известное дружелюбными правилами импорта CSV и документацией; Beancount имеет самый строгий парсер и самую сильную поддержку инвестиций, партий и нескольких валют, плюс API плагинов на Python.
Строгость — это настоящий компромисс: Beancount отказывается загружать файл, который считает неоднозначным, что ловит ошибки рано ценой большей придирчивости. Смотрите Beancount против Ledger CLI и Beancount против hledger.
Поддерживает ли Beancount бюджет по конвертам, как YNAB?
Нативно — нет, это настоящий пробел, а не скрытая функция. Встроенное бюджетирование Beancount ограничено, и люди, желающие строгого поведения по конвертам, обычно используют плагин сообщества или моделируют конверты как счета.
Если бюджетирование по конвертам — главное, чего вы хотите, прочитайте Beancount против YNAB перед переключением. О том, что действительно работает сегодня, смотрите Бюджетирование в Beancount.
Можно ли прикреплять чеки к транзакциям?
Да. Директива document связывает файл со счётом и датой, а веб-интерфейс позволяет
загружать и просматривать эти документы рядом с транзакциями, к которым они относятся. Чеки
остаются обычными файлами на диске, так что они так же переносимы, как и сам реестр.
Смотрите Возможности интерфейса.
Есть ли мобильное приложение?
Да — Beancount.io публикует приложения для iOS и Android для просмотра вашего реестра и ввода транзакций на ходу — именно тот пробел, который оставляет открытым большинство настроек с простым текстом.
Для быстрой записи без приложения многие люди фиксируют черновую заметку и сверяют её с реестром позже.
Насколько большой может быть книга, прежде чем она замедлится?
Десятилетие личных финансов — это несколько мегабайт, и он загружается значительно меньше чем за секунду. Beancount
пересчитывает балансы из полной истории транзакций при каждой загрузке, и это остаётся быстрым вплоть до
сотен тысяч записей. За этим пределом ограничение — удобство редактирования и diff, а не
время загрузки: разделение по годам с помощью include сохраняет отдельные файлы небольшими, но включённые
файлы всё равно образуют один объединённый реестр, который Beancount загружает и пересчитывает целиком, так что это
удобство организации файлов, а не ускорение или способ вести отдельные книги.
Смотрите Поддержку нескольких файлов, чтобы узнать, как разделить растущий реестр.
Все еще не нашли ответ?
Справочный центр индексирует всю документацию, а Глоссарий определяет любой термин выше, который оказался незнакомым.