Перейти к основному содержимому

Глоссарий

Определения на простом языке терминов плейн-текстового учета и Beancount, с которыми вы столкнетесь в своем журнале — счета, директивы, проводки, стоимость, методы ведения учета, балансиры и многое другое.

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

Счет

Счет — это именованное хранилище, отслеживающее один поток стоимости, записываемое в виде иерархии, разделяемой двоеточиями, под одним из пяти корневых типов: Assets (Активы), Liabilities (Обязательства), Equity (Капитал), Income (Доходы) или Expenses (Расходы). Иерархия — это вся организующая структура ваших книг — Assets:US:BofA:Checking и Expenses:Food:Restaurant сортируются и суммируются автоматически. Каждый счет должен быть объявлен до его использования. Правила наименования смотрите в Beancount Language Syntax.

Начисления

Учет на основе начислений фиксирует доходы в момент их возникновения и расходы в момент их возникновения, независимо от того, когда фактически происходит движение средств. Учет на основе денежных средств делает наоборот: признает и доходы, и расходы только при фактическом движении денег. Начисления дают более точную картину периода, вот почему счет, выданный в марте, принадлежит марту, даже если клиент оплатит его в мае.

Амортизация

Амортизация распределяет один крупный платеж по периодам, к которым он относится, так, что каждый месяц несет свою долю стоимости. Годовой страховой взнос, выплаченный в январе, является расходом всех двенадцати месяцев, а не только января. В Beancount вы можете либо написать распределённые проводки вручную, либо сгенерировать их с помощью плагина — смотрите Amortize.

Балансирующая директива

Балансирующая директива — это директива balance, которая указывает, каким должен быть баланс счета на начало заданной даты, так что выписка из банка становится автоматической проверкой ваших книг. Если вычисленный баланс отличается более чем на установленную допуску директивы, Beancount громко сообщает об ошибке с ожидаемыми и фактическими значениями. Эта допустимая разница равна одной единице последнего десятичного знака, который вы указали — 4.27 RGAGX принимает значения от 4.26 до 4.28 — а знак ~ перед валютой задает вашу собственную допуску. Размещение одной балансирующей директивы на счет за каждый отчетный период — самый дешевый способ сохранить достоверность журнала.

2026-01-01 balance Assets:US:BofA:Checking   4,321.00 USD

Beancount

Beancount — это система двойной бухгалтерии с открытым исходным кодом, чей журнал представлен в виде плоского текстового файла, который вы редактируете в любом текстовом редакторе и проверяете с помощью инструмента командной строки. Она предоставляет строгий, парсимый синтаксис, язык запросов и веб-интерфейс, без использования базы данных или проприетарного формата файлов. Поскольку журнал — это текст, он легко размещается в Git рядом с вашим исходным кодом. Начните с Introduction to Beancount.

Язык запросов Beancount (BQL)

Язык запросов Beancount, обычно сокращенно BQL, — это язык, похожий на SQL, который вы используете, чтобы задавать вопросы вашему журналу. Он работает поверх распарсенных директив, а не базы данных, поэтому команда SELECT account, sum(position) WHERE year = 2026 отвечает мгновенно, используя тот же файл, который вы редактируете. Полный грамматический разбор смотрите в query language guide.

Метод учета

Метод учета — это правило, которое Beancount применяет, когда необходимо выбрать, какие существующие лоты уменьшить при списании. Beancount 3.2.3 принимает семь названий: STRICT (по умолчанию, когда вы сами указываете лот), STRICT_WITH_SIZE, NONE, FIFO, LIFO, HIFO и AVERAGE. Устанавливайте метод для каждого счета в его директиве open или для всего файла опцией option "booking_method". Шесть из семи реализованы: AVERAGE разбирается, но вызывает ошибку AVERAGE method is not supported в момент попытки провести списание. Выбранный метод влияет на расчет реализованной капитальной прибыли, поэтому выбирайте тот, который ожидает ваша налоговая юрисдикция, и придерживайтесь его. Inventory Management проверяет все семь методов на одних и тех же лотах и публикует журнал, который не проходит под AVERAGE.

План счетов

План счетов — это полный список счетов, используемых в вашем журнале, вместе со структурой, которая их организует. В Beancount нет отдельного файла плана счетов — набор директив open есть ваш план счетов. Хорошее проектирование на начальном этапе экономит много переименований позже; смотрите Industry-Specific Setups для отправных точек.

Директива закрытия

Директива close отмечает дату, после которой счет более не может использоваться, что позволяет "закрыть" банковский счет или погашенный кредит без удаления истории. Прошедшие транзакции остаются действительными и поддаются отчетности, только новые проводки отклоняются. Закрытие неиспользуемых счетов сохраняет читаемость отчетов по мере старения журнала.

2026-03-31 close Assets:US:OldBank:Checking

Товар

Товар — это любая единица стоимости, которую ваш журнал отслеживает — валюта, например USD, биржевой тикер, например AAPL, криптоактив, например BTC, или что-то, что вы сами изобретаете, например VACATION-DAYS. Beancount никогда не конвертирует товары без вашего ведома, поэтому сумма всегда — это число в паре с товаром, в котором оно выражено. Опциональная директива commodity позволяет прикрепить метаданные, такие как имя или класс актива.

Стоимость приобретения

Стоимость приобретения — это фактическая сумма, которую вы заплатили за владение, записанная в валюте, которой вы платили, и сохраняющаяся вместе с владением на протяжении всего срока его держания. В Beancount она записывается в фигурных скобках — 10 AAPL {150.00 USD} означает десять акций, приобретённых по 150 долларов каждая. Удвоение фигурных скобок означает, что число — это общая стоимость, а не цена за единицу, так что 10 AAPL {{1,500.00 USD}} фикcирует тот же самый лот. Поскольку стоимость пребывает вместе с позицией, расчет капитальной прибыли исключается из арифметики при продаже. Смотрите Inventory Management.

Директива

Директива — это одна инструкция в файле Beancount, обычно датированная, и именно из директив состоит журнал. Двенадцать видов имеют дату: open, close, balance, price, note, document, pad, event, commodity, custom, query и сама транзакция. Некоторые не датированы и действуют на весь файл, а не на конкретный день — option, include, plugin и пара pushtag/poptag. Beancount сортирует датированные по дате перед обработкой, так что вы можете сохранять их в том порядке, который лучше читаться; недатированные вступают в силу там, где написаны.

Двойная бухгалтерия

Двойная бухгалтерия — это практика записи каждого экономического события по крайней мере двумя соответствующими записями, так чтобы их суммы всегда были равны нулю. Деньги никогда не создаются и не уничтожаются — они только перемещаются между счетами, поэтому техника позволяет обнаруживать ошибки, которые в одноколоночном списке остались бы незамеченными. Весом для проводки является либо её сумма, либо её стоимость или цена, пересчитанные в одну валюту, поэтому две проводки в разных товарах все равно взаимно компенсируются. Beancount строго соблюдает это правило: транзакция, чьи проводки не сбалансированы, является ошибкой, а не предупреждением.

2026-03-02 * "Bank" "Buy euros"
  Assets:US:BofA:EUR       100.00 EUR @ 1.08 USD
  Assets:US:BofA:Checking -108.00 USD

Конвертный бюджет

Конвертный бюджет выделяет деньги на конкретную цель заранее, так что каждая категория имеет собственный лимит, а не конкурирует с общим балансом. Название происходит от бумажных конвертов, которые люди наполняли наличными в день зарплаты. В плейн-текстовом журнале объемы моделируются выделенными счетами или директивами бюджета — смотрите Budgets.

Fava

Fava — это веб-интерфейс для Beancount: графики, балансы, отчеты о доходах, редактор запросов и форма ввода, запущенные из вашего файла журнала. Он предназначен для чтения и выполняется локально, меняя способ, которым вы видите свои книги, но не способ записи. beancount.io размещает управляему версию вместе со своими инструментами; в гиде UI Features описано, что там можно делать.

Инвентарь

Инвентарь — это набор позиций, которыми владеет счет в данный момент, каждая со своим товаром и, при необходимости, со своей стоимостью и датой приобретения. Брокерский счет, который купил одну и ту же акцию трижды, хранит три отдельных лота в одном инвентаре, а не одну смешанную сумму. Различение лотов — вот что делает возможным точный расчет прибыли.

Журнал

Журнал — это хронологический список всего, что произошло в ваших книгах — исходный поток транзакций, отсортированных по дате, до какой-либо группировки или сводок. Это вид, который вы просматриваете, чтобы ответить на вопрос «что я на самом деле сделал в марте?». Страница журнала в Fava обычно самое быстрое место, чтобы выявить неправильно категоризованную запись.

Журнал в бухгалтерии

Журнал — это полный набор бухгалтерских записей для одного субъекта, что в Beancount означает ваш плейн-текстовый файл (плюс всё, что он включает). Слово служит и названием всей книги счетов, и названием самого файла. Поскольку это текст, журнал можно сравнивать, проверять, ветвить и сливать, как исходный код.

Лот

Лот — это конкретная покупка товара, идентифицируемая своей стоимостью и датой приобретения. Покупка одного и того же 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 объявляет счет, дату, с которой он становится доступен, и опционально товары, которые он может содержать, а также метод учета. Beancount требует открыть каждый счет до первой проводки, что предотвращает молчаливое создание новых счетов из-за опечаток. Ограничение допустимых товаров превращает целый класс ошибок в фактические ошибки.

2026-01-01 open Assets:US:Broker:VTI   VTI   "FIFO"

Заполнение (Pad)

Директива pad указывает Beancount вставить ту сумму, которая нужна, чтобы следующая балансирующая директива по счету прошла успешно, проводя разницу на второй счет. Она нужна ровно для одной задачи: открыть журнал на середине и не восстанавливать много лет истории. Заполнение за пределами начальной настройки обычно означает, что реальная ошибка замазана.

Получатель платежа

Получатель — это с кем вы совершали операцию, записанный первой строкой в кавычках в транзакции. Поддержание единообразия в наименованиях получателей — всегда "Whole Foods", а не иногда "WholeFoods" — это то, что позволяет автоматически создавать отчеты по получателям и корректно работать импортерам. В Beancount получатель опционален; транзакция может иметь только описание.

Плейн-текстовый учет

Плейн-текстовый учет — практика ведения книг в человеко-читаемом текстовом файле под системой контроля версий, обрабатываемом инструментами с открытым исходным кодом из командной строки. Он жертвует интерфейсом point-and-click ради надежности, аудитируемости и автоматизации: ваши данные переживут любого поставщика, каждое изменение — обозримый дифф, и любой скрипт сможет их прочесть. Beancount, Ledger и hledger — три самых известных реализации.

Плагин

Плагин — это модуль Python, который Beancount загружает во время обработки файла, позволяя добавлять, трансформировать или проверять директивы до генерации отчетов. Плагины реализуют прогнозирование, графики амортизации и пользовательские проверки, не изменяя сам язык. Включается плагин одиночной директивой plugin в начале журнала, никогда не через optionoption "plugin" "…" отклоняется с ошибкой Option 'plugin' may not be set. Гид Forecast Plugin даёт примеры.

Проводка

Проводка — одна "ногa" транзакции: счет, сумма и опционально стоимость или цена. Суммы по транзакции должны в сумме равняться нулю по весам, а не по сырым числам: простая сумма весит сама себя, 10 FUND @ 38.46 USD весит 384.60 USD, а 10 FUND {384.61 USD} весят 3,846.10 USD, ибо одиночные скобки содержат стоимость одной единицы. Максимум одна проводка может не иметь суммы, в этом случае Beancount вычисляет сбалансирующее число за вас. Подробнее в Precision & Tolerances.

Директива цены

Директива price фиксирует обменный курс между двумя товарами на дату, что позволяет Beancount конвертировать владение в рыночную стоимость в отчетах. Директива price — чисто справочные данные: она не перемещает деньги и не относится к какой-либо транзакции. Не путайте с ценой @ внутри проводки, которая служит для арифметики: она придает 10 FUND @ 38.46 USD вес 384.60 USD и решает, сбалансирована ли транзакция. Без директив цены портфель все еще сбалансирован по стимуляционной стоимости, но не может быть оценен по рыночной.

2026-06-30 price VTI   271.40 USD

Сверка

Сверка — это действие, доказывающее, что ваши книги совпадают с внешним документом, например, банковской или брокерской выпиской. В плейн-текстовом учете это в основном механическая операция: добавляйте балансирующую директиву для каждой даты выписки и позволяйте инструменту сообщать, совпадают ли числа. Журнал, который сверяется чисто каждый месяц, можно использовать для подачи налоговой без опасений.

Теги и ссылки

Теги и ссылки — это два типа меток, которые вы присваиваете транзакциям для группировки вне иерархии счетов: тег с # отмечает тему, например #trip-japan, а ссылка с ^ связывает связанные записи, например ^invoice-2026-014. Теги отвечают на вопрос «покажи все в этой категории», ссылки — «покажи записи, относящиеся к этому событию». Обоими можно фильтровать в Fava и запрашивать в BQL — смотрите Filtering and Searching.

Транзакция

Транзакция — датированное экономическое событие вместе с проводками, которые его записывают, и это директива, которую вы будете писать чаще всего. Она несет флаг (* — подтверждено, ! — требует проверки), опционального получателя платежа, описание и две или более проводок, веса которых в сумме дают ноль. Всё остальное в файле Beancount существует, чтобы объявлять, проверять или аннотировать транзакции.

2026-02-14 * "Blue Bottle" "Coffee with Dana"
  Expenses:Food:Coffee      9.50 USD
  Assets:US:BofA:Checking  -9.50 USD

Все еще не можете понять слово? Центр помощи индексирует все руководства на этом сайте, а Cheatsheet сопоставляет синтаксис каждой директивы в одном месте.

Источник: https://beancount.io/ru/docs/glossary