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

Одна запись с тегом "accounts payable"

Посмотреть все теги

Что такое кредиторская задолженность? Руководство по Beancount для отслеживания счетов поставщиков в простом тексте

· 8 минут чтения
Mike Thrift
Mike Thrift
Marketing Manager

Кредиторская задолженность (AP) — это деньги, которые ваш бизнес должен своим поставщикам за товары или услуги, которые вы уже получили, но ещё не оплатили. В бухгалтерском учёте AP классифицируется как текущее обязательство в балансе — сумма, обычно подлежащая выплате в течение следующего года, часто в течение 30–60 дней.

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

2025-08-20-what-is-accounts-payable


Краткое содержание

Прежде чем углубляться в детали, рассмотрим основные положения:

  • Accounts Payable (AP) — это ваши краткосрочные долги перед поставщиками. Вы найдёте его в разделе Liabilities вашего баланса.
  • Accrual vs. Cash: AP существует только при ведении книг на начисленной основе. Beancount полностью поддерживает начисленные процессы, а его веб‑интерфейс Fava корректно отображает ваши обязательства.
  • AP vs. AR: Просто: Payables — это то, что вы должны, а Receivables (AR) — это то, что другие должны вам.

Где находится AP в Beancount (и в Fava)

Чтобы начать отслеживание AP, сначала необходимо объявить счёт для него в вашем журнале. Стандартный вариант:

Liabilities:AccountsPayable

При желании можно создать субсчета для основных поставщиков (например, Liabilities:AccountsPayable:ForestPaintSupply).

В Fava этот счёт появится в Балансе под Liabilities. Кликнув по нему, вы сможете увидеть список всех открытых и оплаченных позиций, получив чёткое представление о своих обязательствах. Пример работы можно увидеть в публичном примере журнала Fava — public example ledger, где присутствует счёт Liabilities:AccountsPayable.


Структурные элементы Beancount, которые вам понадобятся

Надёжный процесс AP в Beancount опирается на несколько ключевых возможностей:

  1. Accounts: Основные счёта — Liabilities:AccountsPayable, денежный счёт, например Assets:Bank:Checking, и различные расходные счёта (например, Expenses:Supplies).
  2. Metadata: К любой транзакции можно добавить пары «ключ‑значение». Для AP обычно используют invoice:, due:, terms: и document:. Fava распознаёт ключ document: и автоматически создаёт кликабельную ссылку на прикреплённый файл, если настроена папка документов.
  3. Tags & Links: Используйте #tags (например, #ap) для удобной фильтрации и ^links (например, ^INV-10455) для программного связывания счёта и последующей оплаты. Это создаёт ясный, проверяемый след.
  4. Queries (BQL): Язык запросов Beancount, похожий на SQL (BQL), позволяет генерировать мощные отчёты, например список всех открытых обязательств, отсортированных по дате оплаты, прямо из командной строки с bean-query или на странице «Query» в Fava.

Основной рабочий процесс AP в Beancount

Управление AP в журнале включает два‑три ключевых шага: запись счёта, его оплата и, при необходимости, частичные выплаты или скидки.

1) Запись счёта поставщика (создаёт обязательство)

Сначала фиксируем расход и создаём обязательство, когда приходит счёт.

; Optionally set your documents folder in your main Beancount file:
option "documents" "documents"

2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
terms: "2/10, n/30"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

Эта запись делает две важные вещи:

  1. Немедленно признаёт расход — $500 в правильный период (август).
  2. Создаёт соответствующее обязательство — $500, показывая, что вы должны деньги Forest Paint Supply.

Ссылка ^INV-10455 — уникальный идентификатор, который позже можно добавить к оплате, связывая счёт и платёж логически.

2) Оплата счёта (снимает обязательство)

Когда вы оплачиваете счёт, создаётся транзакция, переводящая деньги из банковского счёта и снимающая обязательство.

a) Обычная оплата (без скидки):

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

Эта запись уменьшает ваш баланс AP на $500 и баланс текущего счёта на ту же сумму. Обязательство считается погашенным.

b) Скидка за досрочную оплату (например, «2/10, n/30»):

При условиях «2/10, n/30» вы можете получить 2 % скидку, если оплатите в течение 10 дней. Для нашего счёта 500это500 это 10 скидки. Есть два допустимых способа записи — выберите один и придерживайтесь его последовательно.

; Option 1: Record the discount as other income (a contra‑expense effect)
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD

; Option 2: Reduce the original expense directly
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD

В обоих случаях вы полностью погашаете обязательство 500,уменьшаетебанковскийсчётнафактическиуплаченные500, уменьшаете банковский счёт на фактически уплаченные 490 и учитываете выгоду $10.

3) Частичные выплаты

Функция ссылок в Beancount упрощает отслеживание частичных оплат.

; Invoice for $1,200
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
invoice: "INV-9001"
due: "2025-09-09"
Expenses:Parts 1200.00 USD
Liabilities:AccountsPayable -1200.00 USD

; First payment of $400
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD

; Final payment of $800
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD

Благодаря общей ссылке ^INV-9001 во всех трёх транзакциях вы легко можете отфильтровать журнал и увидеть полную историю конкретного счёта и его оплат.


Полезные запросы (BQL)

Запускайте их во вкладке «Query» в Fava или из командной строки с bean-query.

Подсказка: Функция any_meta() отлично подходит для извлечения полей метаданных, таких как invoice: и document:, в результаты запросов.

Открытая AP по поставщикам (вид баланса):

SELECT payee, COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

Открытая AP по счёту + дате оплаты:

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

Счета с прикреплёнными PDF:

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account "^Liabilities:AccountsPayable"
ORDER BY date DESC;

Где увидеть AP в Fava

  • Balance Sheet: Перейдите в Balance SheetLiabilitiesAccountsPayable, чтобы увидеть общий баланс и детализировать транзакции.
  • Journal: Отфильтруйте журнал по account:Liabilities:AccountsPayable или по конкретной ссылке, например ^INV-xxxx, чтобы проследить весь жизненный цикл счёта.
  • Documents Sidebar: При использовании метаданных document: и директивы option "documents" в боковой панели появится список связанных документов.

Оценка просроченной задолженности, оборота и влияния на денежный поток

  • График просрочки (Aging Schedule): Отчёт группирует открытые счета по времени их нахождения в открытом состоянии (1–30 дн., 31–60 дн., 60+ дн.). В Beancount проще всего выполнить запрос «Open AP by Invoice + Due Date», экспортировать результаты в CSV и распределить их по группам в таблице или небольшом скрипте Python.
  • Коэффициент оборота AP: Быстрая проверка того, как быстро вы оплачиваете поставщиков. Формула — Общие закупки у поставщиков ÷ Средняя AP. Показатель Days Payable Outstanding (DPO) приближённо равен 365 ÷ Коэффициент оборота.
  • Если нельзя оплатить вовремя: AP — это краткосрочный долг. Если поставщик соглашается на более длительный график, долг следует переклассифицировать из AP в долг по нотам (Notes Payable).
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
Liabilities:AccountsPayable 2000.00 USD
Liabilities:NotesPayable -2000.00 USD

Лучшие практики работы с AP в Beancount

  • Документы: Храните все счета в отдельной папке и указывайте её через option "documents".
  • Метаданные: Заполняйте invoice:, due: и terms: для каждой записи — это упрощает последующий анализ.
  • Теги и ссылки: Обязательно используйте #ap и уникальные ^‑ссылки, чтобы быстро находить и связывать связанные транзакции.
  • Регулярные проверки: Периодически просматривайте открытые обязательства в Fava, чтобы избежать неожиданной просрочки.

Пример записи «Счёт поставщика»

2023-04-15 * "Acme Corp" "Invoice #12345" ^INV-12345 #ap
invoice: "12345"
due: "2023-05-15"
terms: "Net 30"
document: "invoices/2023-04-15-acme-12345.pdf"
Expenses:OfficeSupplies 250.00 USD
Liabilities:AccountsPayable -250.00 USD

Пример частичной оплаты

2023-04-20 * "Acme Corp" "Partial payment for INV-12345" ^INV-12345
Liabilities:AccountsPayable 150.00 USD
Assets:Bank:Checking -150.00 USD

Пример полной оплаты

2023-04-30 * "Acme Corp" "Full payment for INV-12345" ^INV-12345
Liabilities:AccountsPayable 250.00 USD
Assets:Bank:Checking -250.00 USD

Пример записи со скидкой за досрочную оплату

2023-04-25 * "Acme Corp" "Early payment discount for INV-12345" ^INV-12345
Liabilities:AccountsPayable 250.00 USD
Assets:Bank:Checking -245.00 USD
Income:Discounts:Payables -5.00 USD

Пример переклассификации просроченной AP в долг по нотам

2023-05-01 * "Acme Corp" "Convert overdue AP to note" ^INV-12345
Liabilities:AccountsPayable 250.00 USD
Liabilities:NotesPayable -250.00 USD

Пример использования боковой панели документов в Fava

option "documents" "documents"

2023-04-15 * "Acme Corp" "Invoice #12345" ^INV-12345 #ap
invoice: "12345"
due: "2023-05-15"
document: "invoices/2023-04-15-acme-12345.pdf"
Expenses:OfficeSupplies 250.00 USD
Liabilities:AccountsPayable -250.00 USD

Пример запроса открытой AP по поставщикам

SELECT payee, COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

Пример запроса открытой AP по счёту и дате оплаты

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

Пример запроса всех PDF‑документов, связанных с AP

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account "^Liabilities:AccountsPayable"
ORDER BY date DESC;

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


Этот материал предоставлен в ознакомительных целях и не является финансовой рекомендацией.


© 2024 Beancount Community