Начисленные расходы в Beancount: Практическое руководство (с примерами записей, готовыми к копированию)
Начисленные расходы звучат абстрактно, пока не начнут накапливаться к концу месяца. Они являются краеугольным камнем правильного начисленного учета, обеспечивая, чтобы ваши финансовые отчёты отражали экономическую реальность, а не только момент передачи наличных. Ниже — понятный, ориентированный на Beancount, пошаговый разбор того, что это такое, почему это важно и как именно их записывать, отменять и отчитываться в вашем текстовом регистре.
TL;DR ⚡
- Начисленные расходы — это затраты, понесённые в текущем периоде, но ещё не оплаченные. Они фиксируются как обязательство до момента выхода наличных.
- В Beancount это просто: дебетируется счёт
Expenses:и кредитируется счётLiabilities:Accrued:. Позже обязательство снимается при оплате.- Для отчёта можно увидеть, что вы должны на конкретную дату, запустив
bean-queryс параметрамиCLOSE ONиCLEARдля получения чистого снимка баланса.
Что такое начисленный расход?
Начисленный расход — это стоимость, которую бизнес уже понёс, но ещё не оплатил. Он фиксируется в момент получения услуги или возникновения стоимости, даже если счёт ещё не пришёл или оплата ещё не требуется. Эта практика следует принципу соответствия начисленного учёта, согласно которому расходы должны учитываться в том же периоде, что и связанные с ними доходы.
Типичные примеры:
- Заработная плата, начисленная сотрудникам к концу месяца, но выплачиваемая в следующем.
- Коммунальные услуги (электричество, вода), использованные в декабре, но выставленные в счёт только в январе.
- Процент по кредиту, накопившийся за месяц, но ещё не списанный со счёта.
Фиксируя эти затраты в момент их возникновения, вы получаете более правдивую картину финансовой эффективности компании за данный период.
Как Beancount воспринимает это (за 30 секунд)
Beancount — это система двойной записи в виде простого текста. Всё представлено датированными директивами или транзакциями в файле. Система построена на пяти базовых типах счетов: Assets, Liabilities, Equity, Income и Expenses.
Записи всегда упорядочены по дате. Важный момент: проверки balance выполняются до обработки транзакций того же дня. Это нужно учитывать при размещении проверок и обратных записей.
Наконец, язык bean-query предоставляет мощный, похожий на SQL, способ генерации отчётов. Операторы OPEN ON, CLOSE ON и CLEAR позволяют создавать точные «по состоянию на» представления финансовой отчётности.
План счетов (рекомендация)
Чистая иерархическая структура плана счетов — ваш лучший помощник. Для начисленных расходов структура проста. Вам понадобится:
- Счёт расходов: например,
Expenses:Utilities,Expenses:Payroll:Wages - Соответствующий счёт обязательств: например,
Liabilities:Accrued:Utilities,Liabilities:Accrued:Payroll - Счёт наличных: например,
Assets:Bank:Checking
Beancount принуждает к использованию пяти верхнеуровневых типов счетов. Организованные имена упрощают запросы и отчёты.
Основной шаблон (без плагинов, без магии)
Это самый прямой способ работы с начислениями в Beancount. Он состоит из двух шагов: начисление расхода в конце месяца и снятие обязательства при оплате.
Шаг 1: Начислить расход в конце месяца
В последний день периода фиксируем расход и создаём обязательство.
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
Шаг 2: Снять начисление при оплате
Когда приходи т счёт и вы его оплачиваете, повторно не трогаете счёт расходов. Вместо этого дебетируете счёт обязательств, чтобы очистить его.
2025-03-05 * "Pay Feb electricity - City Power"
Liabilities:Accrued:Utilities 120.00 USD
Assets:Bank:Checking
Это самый чистый подход для небольших команд. Он правильно размещает расход в феврале и не дублирует его в марте. Обратите внимание, что в Beancount оставление одной суммы пустой заставляет систему автоматически сбалансировать транзакцию.
Альтернатива: Обратная запись в первый день следующего месяца
Если вам ближе классический стиль «авто‑отмены», можно разместить противоположную запись к начислению в первый день следующего месяца, а затем обычным способом записать реальный счёт поставщика.
Шаг 1: Начислить в конце месяца (как выше)
2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities
Шаг 2: Отменить в первый день следующего месяца
2025-03-01 * "Reverse Feb electricity accrual" #reversal
Liabilities:Accrued:Utilities 120.00 USD
Expenses:Utilities
Шаг 3: Записать оплату как обычно
2025-03-05 * "City Power - February bill"
Expenses:Utilities 120.00 USD
Assets:Bank:Checking
Внимание к проверкам: Помните, что проверки balance оцениваются до транзакций того же дня. Если хотите проверить баланс Liabilities:Accrued:Utilities, разместите проверку на 2025-02-28 для подтверждения начисления или на 2025-03-01 после отмены, чтобы убедиться, что он равен нулю. Размещение её до отмены 1‑го марта вызовет ложный сбой.
Шесть типовых начислений (шаблоны для копирования) 📋
Ниже — готовые примеры для распространённых бизнес‑начислений.
1. Аренда, ещё не выставленная в счёт
2025-01-31 * "Accrue January rent" #accrual
Expenses:Rent 3000.00 USD
Liabilities:Accrued:Rent
2. Заработная плата, начисленная, но не выплаченная
2025-03-31 * "Accrue March wages" #accrual
Expenses:Payroll:Wages 8500.00 USD
Liabilities:Accrued:Payroll
3. Оплата отпуска (PTO), начисленная
2025-03-31 * "Accrue PTO earned in March" #accrual
Expenses:Payroll:PTO 900.00 USD
Liabilities:Accrued:Payroll
4. Процент по кредиту, начисленный
2025-02-29 * "Accrue monthly loan interest" #accrual
Expenses:Interest 210.00 USD
Liabilities:Accrued:Interest
5. Профессиональные услуги (аудит/юридические)
2025-12-31 * "Accrue year-end audit fees" #accrual
Expenses:Professional:Audit 4200.00 USD
Liabilities:Accrued:Professional
6. Коммунальные услуги, использованные, но не выставленные в счёт
2025-04-30 * "Accrue April utilities" #accrual
Expenses:Utilities 95.00 USD
Liabilities:Accrued:Utilities
Отчётность: «Что я должен на определённую дату?»
bean-query — ваш инструмент для получения ответов. Ниже показано, как получить корректный снимок баланса по начисленным расходам.
Получить все балансы начисленных обязательств на конец периода
Этот запрос выдаёт баланс каждого счёта начисленных обязательств на 31 марта 2025 г.
bean-query main.beancount '
SELECT account, UNITS(SUM(position)) AS balance
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued"
GROUP BY 1
ORDER BY 1;
'
OPEN ONзадаёт начальные остатки в начале периода.CLOSE ONотсекает транзакции до указанной даты (исключительно). Поэтому используем2025-04-01, чтобы включить данные до2025-03-31.CLEARобнуляет доходы и расходы, давая чистый вид баланса (Активы, Обязательства, Капитал).