Що таке кредиторська заборгованість? Посібник для Beancount для відстеження рахунків від постачальників у простому тексті
Кредиторська заборгованість (КЗ) – це гроші, які ваш бізнес винен своїм постачальникам за товари чи послуги, які ви вже отримали, але ще не оплатили. У світі бухгалтерського обліку КЗ класифікується як поточне зобов'язання у вашому балансі – сума, яка зазвичай підлягає сплаті протягом наступного року, а часто – протягом 30–60 днів.
Ця концепція є центральною для обліку нарахувань, де ви записуєте витрати та відповідне зобов'язання в момент надходження рахунку, а не коли ви фактично надсилаєте гроші. Цей посібник покаже вам, як керувати всім робочим процесом КЗ чітко та ефективно за допомогою інструменту обліку у вигляді простого тексту Beancount.
Короткий підсумок
Перш ніж ми заглибимося в деталі, давайте розглянемо основні моменти:
- Кредиторська заборгованість (КЗ) представляє ваші короткострокові борги перед постачальниками. Ви знайдете її в розділі
Liabilitiesвашого балансу. - Нарахування проти готівки: КЗ – це концепція, яка існує лише в тому випадку, якщо ви ведете свої книги на основі нарахувань. Beancount повністю підтримує робочі процеси нарахувань, а його веб-інтерфейс, Fava, правильно відображатиме ваші зобов'язання.
- КЗ проти ДЗ: Все просто: Кредиторська заборгованість – це те, що ви винні, а дебіторська заборгованість (ДЗ) – це те, що інші винні вам.
Де КЗ знаходиться в Beancount (і Fava)
Щоб почати відстежувати КЗ, спочатку потрібно оголосити для неї рахунок у вашій книзі. Стандартна конвенція:
Liabilities:AccountsPayable
Ви можете додатково створити субрахунки для основних постачальників (наприклад, Liabilities:AccountsPayable:ForestPaintSupply).
У Fava цей рахунок з'явиться у вашому балансі в розділі Liabilities. Ви можете клацнути на ньому, щоб деталізувати та побачити список усіх відкритих і оплачених позицій, що дасть вам чітке уявлення про ваші зобов'язання. Ви навіть можете побачити це в дії в публічному прикладі книги Fava, який включає рахунок Liabilities:AccountsPayable.
Будівельні блоки Beancount, які ви будете використовувати
Надійний робочий процес КЗ в Beancount спирається на кілька основних функцій:
- Рахунки: Ви в основному будете використовувати свій рахунок
Liabilities:AccountsPayable, готівковий рахунок, як-отAssets:Bank:Checking, і різні рахунки витрат (наприклад,Expenses:Supplies). - Метадані: Ви можете прикріпити дані «ключ-значення» до будь-якої транзакції. Для КЗ ви використовуватимете метадані, такі як
invoice:,due:,terms:іdocument:. Fava навіть розпізнає ключdocument:і автоматично створить посилання, яке можна клацнути, на прикріплений файл, якщо ви налаштуєте папку документів. - Теги та посилання: Використовуйте
#tags(наприклад,#ap) для легкого фільтрування та^links(наприклад,^INV-10455), щоб програмно пов’язати рахунок і його подальшу оплату. Це створює чіткий, контрольований слід. - Запити (BQL): SQL-подібна мова запитів Beancount (BQL) дозволяє запускати потужні звіти, наприклад, складати список усієї відкритої кредиторської заборгованості, відсортованої за терміном сплати, безпосередньо з командного рядка за допомогою
bean-queryабо на сторінці «Query» Fava.
Основний робочий процес КЗ в Beancount
Керування КЗ у вашій книзі передбачає два або три ключові етапи: запис рахунку, його оплату та іноді обробку часткових платежів або знижок.
1) Запис рахунку від постачальника (це створює зобов'язання)
Спочатку ви бронюєте витрати та створюєте кредиторську заборгованість, коли надходить рахунок.
; За бажанням встановіть папку документів у своєму головному файлі Beancount:
option "documents" "documents"
2025-08-05 * "Forest Paint Supply" "Замовлення фарби 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
Цей єдиний запис досягає двох важливих речей:
- Він негайно визнає витрати в розмірі 500 доларів США у правильному періоді (серпень).
- Він створює відповідне зобов’язання в розмірі 500 доларів США, показуючи, що ви винні гроші Forest Paint Supply.
Посилання ^INV-10455 є унікальним ідентифікатором, який дозволяє вам прикріпити те саме посилання до платежу пізніше, зберігаючи логічний зв’язок між рахунком і платіжними транзакціями.
2) Оплата рахунку (це погашає зобов'язання)
Коли ви оплачуєте рахунок, ви створюєте транзакцію, яка переміщує гроші з вашого банківського рахунку для погашення зобов'язання.
a) Стандартний платіж (без знижки):
2025-09-01 * "Forest Paint Supply" "Оплата INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD
Цей запис зменшує ваш баланс КЗ на 500 доларів США та ваш баланс на поточному рахунку на ту саму суму. Зобов'язання тепер погашено.
b) Знижка за ранню оплату (наприклад, "2/10, n/30"):
Якщо умови «2/10, n/30», ви можете отримати знижку 2%, якщо оплатите протягом 10 днів. Для нашого рахунку на 500 доларів США це знижка 10 доларів США. Ось два прийнятні способи її запису – просто виберіть один метод і будьте послідовними.
; Варіант 1: Запишіть знижку як інший дохід (контра-ефект витрат)
2025-08-12 * "Forest Paint Supply" "Знижка за ранню оплату INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD
; Варіант 2: Безпосередньо зменште початкові витрати
2025-08-12 * "Forest Paint Supply" "Знижка за ранню оплату INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD
В обох випадках ви погашаєте повне зобов’язання в розмірі 500 доларів США, зменшуєте свій банківський баланс на 490 доларів США, які ви фактично заплатили, і враховуєте вигоду в розмірі 10 доларів США.
3) Обробка часткових платежів
Функція зв’язування Beancount робить відстеження часткових платежів простим і чітким.
; Рахунок на 1200 доларів США
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
; Перший платіж у розмірі 400 доларів США
2025-08-20 * "Acme Parts" "Оплата INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD
; Остаточний платіж у розмірі 800 доларів США
2025-09-05 * "Acme Parts" "Оплата INV-9001 (остаточна)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD
Використовуючи посилання ^INV-9001 на всіх трьох транзакціях, ви можете легко відфільтрувати свій журнал, щоб побачити повну історію цього конкретного рахунку та пов’язаних з ним платежів.
Корисні запити (BQL)
Ви можете запустити ці запити на вкладці «Query» Fava або з командного рядка за допомогою bean-query.
Порада: Функція
any_meta()неймовірно корисна для витягування полів метаданих, таких якinvoice:іdocument:, у результати запиту.
Відкрита КЗ за постачальником (перегляд балансу):
Цей запит підсумовує поточний непогашений баланс, який ви винні кожному постачальнику.
SELECT payee, COST(SUM(position)) AS amount
WHERE account ~ "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;
Відкрита КЗ за рахунком + терміном сплати:
Отримайте акуратний список кожного відкритого рахунку, відсортованого за терміном сплати, щоб допомогти вам визначити пріоритетність платежів.
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;