Plain-text accounting заимствует лексику из бухгалтерского учёта с двойной записью и добавляет несколько собственных терминов, специфичных для Beancount. Этот глоссарий определяет термины, с которыми вы столкнётесь при чтении документации или собственной бухгалтерской книги, каждый с кратким примером, где это уместно. На каждую запись есть собственная ссылка, чтобы вы могли отправить коллегу прямо к определению.
Счёт (Account)
Счёт — это именованный контейнер, отслеживающий один поток стоимости, записываемый в виде иерархии, разделённой двоеточиями, под одним из пяти корневых типов: Assets (Активы), Liabilities (Обязательства), Equity (Капитал), Income (Доходы) или Expenses (Расходы). Иерархия — это вся организующая структура ваших книг — такие счета, как Assets:US:BofA:Checking и Expenses:Food:Restaurant, автоматически сортируются и группируются. Каждый счёт должен быть объявлен до его использования. См. Синтаксис языка Beancount для правил именования.
Метод начисления (Accrual basis)
Учёт по методу начисления регистрирует доходы, когда они заработаны, и расходы, когда они понесены, независимо от фактического движения денежных средств. Кассовый метод (Cash basis) делает наоборот: он признаёт и то, и другое только в момент фактической передачи денег. Метод начисления даёт более точную картину результатов за период, поэтому выставленный в марте счёт относится к марту, даже если клиент оплатит его в мае.
Амортизация (Amortization)
Амортизация распределяет один крупный платёж по периодам, которые он фактически охватывает, чтобы каждый месяц нёс свою справедливую долю затрат. Ежегодная страховая премия, уплаченная в январе, является расходом всех двенадцати месяцев, а не только января. В Beancount вы либо записываете разбитые проводки вручную, либо генерируете их с помощью плагина — см. Amortize.
Балансовая проверка (Balance assertion)
Балансовая проверка — это директива balance, которая указывает, каким должен быть остаток на счёте на начало определённой даты, превращая вашу банковскую выписку в автоматическую проверку ваших книг. Если вычисленный остаток отличается, Beancount громко сообщает об ошибке с ожидаемой и фактической суммами. Размещение одной проверки на счёт на каждую выписку — это самый простой способ поддерживать бухгалтерскую книгу в достоверном состоянии.
2026-01-01 balance Assets:US:BofA:Checking 4,321.00 USDBeancount
Beancount — это open-source система бухгалтерского учёта с двойной записью, бухгалтерская книга (ledger) которой представляет собой обычный текстовый файл, редактируемый в любом текстовом редакторе и проверяемый с помощью инструмента командной строки. Она предоставляет строгий, парсируемый синтаксис, язык запросов и веб-интерфейс, без базы данных или проприетарного формата файлов. Поскольку книга — это текст, она прекрасно живёт в Git вместе с вашим кодом. Начните с Введения в Beancount.
Язык запросов Beancount (Beancount Query Language)
Язык запросов Beancount, обычно сокращаемый как BQL, это SQL-подобный язык для запросов к вашей бухгалтерской книге. Он работает с распарсенными директивами, а не с базой данных, поэтому SELECT account, sum(position) WHERE year = 2026 мгновенно ответит, используя тот же файл, который вы редактируете. Прочитайте руководство по языку запросов для полного описания грамматики.
Метод учёта (Booking method)
Метод учёта — это правило, которое Beancount применяет, когда операция уменьшения счёта должна выбрать, какие из существующих лотов (lots) списать. Варианты: STRICT (вы должны сами указать лот), FIFO (ФИФО), LIFO (ЛИФО), AVERAGE (Средний) и NONE (Нет), устанавливается для счёта в его директиве open. Выбранный метод влияет на вашу реализованную прибыль, поэтому выбирайте тот, который требуется вашей налоговой юрисдикцией, и придерживайтесь его.
План счетов (Chart of accounts)
План счетов — это полный список счетов, используемых в вашей бухгалтерской книге, вместе со структурой, которая их организует. В Beancount нет отдельного файла плана счетов — набор директив open и есть ваш план счетов. Хорошо продуманная структура на начальном этапе избавит от множества переименований в будущем; см. Отраслевые настройки для отправных точек.
Директива закрытия счёта (Close directive)
Директива close отмечает дату, после которой счёт больше не может использоваться. Это способ закрыть банковский счёт или погашенный кредит, не удаляя его историю. Прошлые транзакции остаются действительными и доступными для отчётов; отклоняются только новые проводки. Закрытие неиспользуемых счетов сохраняет отчёты читаемыми по мере старения книги.
2026-03-31 close Assets:US:OldBank:CheckingАктив (Commodity)
Актив — это любая единица стоимости, отслеживаемая вашей книгой: валюта (например, USD), тикер акции (например, AAPL), криптоактив (например, BTC) или что-то, что вы придумали сами (например, VACATION-DAYS). Beancount никогда не конвертирует активы за вашей спиной, поэтому сумма всегда представляет собой число в паре с активом, в котором она выражена. Необязательная директива commodity позволяет прикрепить метаданные, такие как название или класс актива.
Себестоимость (Cost basis)
Себестоимость — это фактическая цена, которую вы заплатили за актив, записанная в валюте, которой вы платили, и сохраняемая вместе с активом, пока вы им владеете. Beancount записывает её в фигурных скобках: 10 AAPL {150.00 USD} означает десять акций, приобретённых по 150 долларов каждая. Поскольку себестоимость следует за позицией, прибыль от продажи автоматически вычисляется при продаже. См. Управление запасами (инвентаризация).
Директива (Directive)
Директива — это одна инструкция с датой в файле Beancount, и директивы — это всё, что содержит бухгалтерская книга. Каждая строка, начинающаяся с даты, является директивой: open, close, balance, price, note, document, pad, event, commodity и сама транзакция. Beancount сортирует директивы по дате перед обработкой, поэтому вы можете располагать их в любом порядке, удобном для чтения.
Двойная запись (Double-entry bookkeeping)
Двойная запись — это практика регистрации каждого экономического события как минимум двумя соответствующими записями, так что суммы всегда уравновешивают друг друга (дают ноль). Деньги никогда не создаются и не уничтожаются — они только перемещаются между счетами, поэтому этот метод выявляет ошибки, которые никогда не обнаружит одноколоночный список. Beancount строго соблюдает это правило: транзакция, проводки которой не сбалансированы, является ошибкой, а не предупреждением.
Бюджетирование по конвертам (Envelope budgeting)
Бюджетирование по конвертам откладывает деньги на определённую цель до того, как вы их потратите, так что у каждой категории есть свой лимит вместо конкуренции за один общий остаток. Название происходит от бумажных конвертов, которые люди когда-то наполняли наличными в день зарплаты. В plain-text книге вы моделируете конверты с помощью выделенных счетов или бюджетных директив — см. Бюджеты.
Fava
Fava — это веб-интерфейс для Beancount: графики, балансы, отчёты о прибылях и убытках, редактор запросов и форма для ввода данных, работающие с вашим файлом книги. Он предназначен в основном для просмотра и работает локально, так что меняет то, как вы видите свои записи, не меняя того, как вы их записываете. beancount.io предоставляет управляемую версию вместе с собственными инструментами; руководство Возможности интерфейса описывает, что вы можете там делать.
Инвентаризация (Inventory)
Инвентаризация — это совокупность позиций, которыми в данный момент владеет счёт, каждая со своим активом и, где применимо, собственной себестоимостью и датой приобретения. Брокерский счёт, купивший одну и ту же акцию трижды, содержит три отдельных лота в одной инвентаризации, а не одно смешанное число. Разделение лотов — это то, что делает возможным точный расчёт прибыли.
Журнал (Journal)
Журнал — это хронологический список всего, что произошло в ваших книгах: необработанный поток транзакций в порядке дат, до любой группировки или суммирования. Это представление, которое вы просматриваете, когда хотите ответить на вопрос: "Что я на самом деле делал в марте?". Страница журнала в Fava обычно является самым быстрым местом для поиска неправильно категоризированной записи.
Бухгалтерская книга (Ledger)
Бухгалтерская книга — это полный набор учётных записей для одной организации, что в Beancount означает ваш текстовый файл (плюс всё, что он включает). Это слово одновременно означает и всю книгу счетов, и сам файл. Поскольку это текст, книгу можно сравнивать (diff), рецензировать, ветвить (branch) и сливать (merge) как исходный код.
Лот (Lot)
Лот — это одно конкретное приобретение актива, идентифицируемое по его себестоимости и дате приобретения. Покупка одного и того же ETF в январе, а затем в июне создаёт два лота, и последующая продажа подразумевает выбор, какой лот вы продаёте. Лоты — это причина, по которой Beancount может вычислять реализованную прибыль точно, а не приблизительно.
2026-06-15 * "Broker" "Buy VTI"
Assets:US:Broker:VTI 5 VTI {260.00 USD, 2026-06-15}
Assets:US:Broker:Cash -1,300.00 USDОписание (Narration)
Описание — это текстовое описание того, для чего была транзакция, записанное как вторая строка в кавычках в строке транзакции. Оно предназначено для людей: "Ежемесячная аренда", "Продукты и товары для дома". Beancount его не разбирает, но именно его вы будете читать, когда запись перестанет быть понятной через полгода.
Директива открытия счёта (Open directive)
Директива open объявляет счёт, дату начала его использования и, опционально, активы, которые он может содержать, и используемый метод учёта. Beancount требует, чтобы каждый счёт был открыт до его первой проводки, что предотвращает случайное создание нового счёта из-за опечатки. Ограничение разрешённых активов превращает целый класс ошибок в ошибки.
2026-01-01 open Assets:US:Broker:VTI VTI "FIFO"Вставка (Pad)
Директива pad указывает Beancount вставить сумму, необходимую для успешного прохождения следующей балансовой проверки на счёте, записывая разницу на другой счёт. Она существует для одной цели: начать ведение книги с середины жизненного цикла без восстановления многолетней истории. Использование pad за пределами такой начальной настройки обычно означает, что маскируется реальная ошибка.
Получатель (Payee)
Получатель — это лицо, с которым вы совершили транзакцию, записываемое как первая строка в кавычках в строке транзакции. Согласованность получателей — всегда "Whole Foods", никогда иногда "WholeFoods" — это то, что делает отчёты на основе получателей и автоматические импортёры работоспособными. Beancount считает получателя необязательным; транзакция может содержать только описание.
Plain-text accounting (Учёт в обычном тексте/Текстовый учёт)
Plain-text accounting — это практика ведения бухгалтерских книг в удобочитаемом текстовом файле под контролем версий, обрабатываемом с помощью open-source инструментов командной строки. Он обменивает графический интерфейс на долговечность, проверяемость и автоматизацию: ваши данные переживают любого поставщика услуг, каждое изменение является проверяемой разницей, и любой скрипт может их прочитать. Beancount, Ledger и hledger — три наиболее известные реализации.
Плагин (Plugin)
Плагин — это Python-модуль, который Beancount загружает при обработке вашего файла, позволяя ему добавлять, преобразовывать или проверять директивы до построения отчётов. Плагины используются для реализации прогнозирования, графиков амортизации и пользовательских проверок без изменения основного языка. Вы подключаете его с помощью строки plugin в начале вашей книги — в руководстве Плагин прогнозирования рассматривается реальный пример.
Проводка (Posting)
Проводка — это одна сторона транзакции: счёт, сумма и, опционально, себестоимость или цена. Транзакция требует как минимум двух проводок, и их суммы должны в сумме давать ноль. Не более чем в одной проводке сумма может быть оставлена пустой; в этом случае Beancount вычисляет балансирующую цифру за вас.
Директива цены (Price directive)
Директива price записывает обменный курс между двумя активами на определённую дату. Это то, как Beancount конвертирует актив в его рыночную стоимость в отчётах. Цены — это чисто справочные данные; они никогда не перемещают деньги и никогда не появляются в транзакции. Без них портфель всё равно сбалансирован по себестоимости, но не может быть оценён по рыночной стоимости.
2026-06-30 price VTI 271.40 USDСверка (Reconciliation)
Сверка — это процесс подтверждения того, что ваши книги согласуются с внешним источником, таким как банковская или брокерская выписка. В plain-text accounting она в значительной степени механическая: добавьте балансовую проверку для каждой даты выписки и позвольте инструменту сообщить, совпадают ли цифры. Книга, которая чисто сводится каждый месяц, — это книга, на основе которой можно без страха подавать налоговые декларации.
Теги и ссылки (Tags and links)
Теги и ссылки — это две метки, которые вы прикрепляете к транзакциям для группировки вне иерархии счетов: тег с # отмечает тему, такую как #trip-japan, а ссылка с ^ связывает связанные записи, такие как ^invoice-2026-014. Теги отвечают на вопрос "покажи мне всё в этой категории"; ссылки отвечают на вопрос "покажи мне записи, относящиеся к этому событию". И то, и другое можно фильтровать в Fava и запрашивать в BQL — см. Фильтрация и поиск.
Транзакция (Transaction)
Транзакция — это датированное экономическое событие вместе с проводками, которые его регистрируют, и это директива, которую вы будете писать чаще всего. Она содержит флаг (* для подтверждённых, ! для требующих проверки), необязательного получателя, описание и две или более проводок, суммы которых в сумме дают ноль. Всё остальное в файле Beancount существует для объявления, проверки или аннотирования транзакций.
2026-02-14 * "Blue Bottle" "Coffee with Dana"
Expenses:Food:Coffee 9.50 USD
Assets:US:BofA:Checking -9.50 USDВсё ещё не поняли какое-то слово? Центр помощи содержит указатель всех руководств на этом сайте, а Шпаргалка показывает синтаксис каждой директивы рядом.