Какво е задължения към доставчици? Ръководство, съвместимо с Beancount, за проследяване на фактури от доставчици в чист текст
Задължения към доставчици (AP) са парите, които вашият бизнес дължи на доставчиците за стоки или услуги, които вече сте получили, но все още не сте платили. В света на счетоводството AP се класифицира като текущ пасив в баланса – сума, обикновено дължима в рамките на следващата година, често в 30‑60 дни.
Тази концепция е централна за начислителното счетоводство, където разходът и съответният пасив се записват в момента, в който фактурата пристигне, а не когато парите действително се изпратят. Това ръководство ще ви покаже как да управлявате целия процес на AP чисто и ефективно, използвайки ин струмента за счетоводство в чист текст – Beancount.
Кратко резюме
Преди да се потопим в детайлите, нека обхванем основните неща:
- Задължения към доставчици (AP) представляват вашите краткосрочни задължения към доставчиците. Ще ги намерите в секцията
Liabilities
на вашия баланс. - Начислително vs. Кеш: AP съществува само ако водите книгите си на начислителна база. Beancount напълно поддържа начислителни процеси, а уеб интерфейсът му, Fava, ще показва вашите пасиви коректно.
- AP vs. AR: Просто е: задълженията са това, което дължите, докато вземанията (AR) са това, което другите дължат на вас.
Къде се намира AP в Beancount (и във Fava)
За да започнете да проследявате AP, първо трябва да декларирате сметка за него във вашия журнал. Стандартната конвенция е:
Liabilities:AccountsPayable
По желание можете да създадете подсметки за големи доставчици (например Liabilities:AccountsPayable:ForestPaintSupply
).
Във Fava тази сметка ще се появи в Баланса под Liabilities
. Можете да кликнете върху нея, за да видите списък с всички отворени и платени елементи, получавайки ясен преглед на вашите задължения. Пример можете да видите в публичния примерен журнал на Fava: https://fava.pythonanywhere.com/example-beancount-file/balance_sheet/, където има сметка Liabilities:AccountsPayable
.
Блокове от Beancount, които ще използвате
Устойчивият процес за AP в Beancount се б азира на няколко основни функции:
- Сметки: Основно ще използвате
Liabilities:AccountsPayable
, кешова сметка катоAssets:Bank:Checking
и различните си разходни сметки (напримерExpenses:Supplies
). - Метаданни: Можете да прикачвате ключ‑стойност данни към всяка транзакция. За AP ще използвате метаданни като
invoice:
,due:
,terms:
иdocument:
. Fava дори разпознава ключаdocument:
и автоматично създава кликваща връзка към прикачения файл, ако сте конфигурирали папка за документи. - Тагове & Връзки: Използвайте
#tags
(например#ap
) за лесно филтриране и^links
(например^INV-10455
) за програмно свързване на фактура и последващото й плащане. Това създава ясен, одитируем след. - Запитвания (BQL): SQL‑подобният език за запитвания на Beancount (BQL) ви позволява да генерирате мощни отчети, като списък с всички отворени задължения, сортирани по дата на падеж, директно от командния ред с
bean-query
или от страницата „Query“ във Fava.
Основен процес за AP в Beancount
Управлението на AP във вашия журнал включва две или три ключови стъпки: записване на фактурата, плащане и понякога обработка на частични плащания или отстъпки.
1) Записване на фактурата (създава пасив)
Първо, записвате разхода и създавате задължението, когато фактурата пристигне.
; По желание задайте папка за документи в главния файл на Beancount:
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
Този един запис постига две критични неща:
- Незабавно признава разход от 500 USD в правилния период (август).
- Създава съответстващ пасив от 500 USD, показвайки, че дължите пари на Forest Paint Supply.
Връзката ^INV-10455
е уникален идентификатор, който по-късно ще поставите и в плащането, за да свържете логически фактурата и плащането.
2) Плащане на фактурата (изчиства пасива)
Когато платите фактурата, създавате транзакция, която прехвърля пари от банковата ви сметка, за да изчисти пасива.
а) Стандартно плащане (без отстъпка):
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD
Този запис намалява вашия AP баланс с 500 USD и същевременно намалява баланса на разплащателната сметка с тази сума. Пасивът вече е изчистен.
б) Отстъпка за ранно плащане (напр. „2/10, n/30“):
Ако условията са „2/10, n/30“, можете да вземете 2 % отстъпка, ако платите в рамките на 10 дни. За нашата фактура от 500 USD това е отстъпка от 10 USD. Има два приети начина за запис – изберете един и бъдете последователни.
; Опция 1: Записване на отстъпката като друг доход (контра‑разходен ефект)
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
; Опция 2: Намаляване директно на оригиналния разход
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 USD, намалявате банковата сметка с 490 USD, които сте платили, и отразявате ползата от 10 USD.
3) Обработка на частични плащания
Функцията за връзки в Beancount прави проследяването на частични плащания просто и чисто.
; Фактура за 1 200 USD
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 USD
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD
; Финално плащане от 800 USD
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:
в резултатите от запитванията.
Отворени задължения по доставчик (преглед на баланса):
Това запитване сумира текущия остатък, който дължите на всеки доставчик.
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;
Къде да видите AP във Fava
- Баланс: Отидете в
Balance Sheet
→Liabilities
→AccountsPayable
, за да видите общия остатък и да навигирате до детайлите на транзакциите. - Журнал: Филтрирайте журнала с
account:Liabilities:AccountsPayable
или с конкретна връзка като^INV-xxxx
, за да видите целия жизнен цикъл на дадена фактура. - Странична лента „Documents“: Ако използвате метаданния
document:
и сте задали директиватаoption "documents"
, ще видите списък с линкове към документите в страничната лента.
Стареене на задължения, о борот и осведоменост за паричния поток
- График за стареене: Този отчет групира отворените ви фактури по време на просрочване (например 1‑30 дни, 31‑60 дни, над 60 дни). В Beancount най-практичният подход е да изпълните горното запитване „Open AP by Invoice + Due Date“, да експортирате резултатите като CSV и да ги групирате в електронна таблица или малък Python скрипт.
- Оборот на задължения (AP Turnover Ratio): Бърза проверка за това колко бързо плащате доставчиците. Формулата е
Общо покупки от доставчици ÷ Среден AP
. Свързаният показател Days Payable Outstanding (DPO) се изчислява приблизително като365 ÷ Оборот
. - Ако не можете да платите навреме: AP е предназначено за краткосрочен дълг. Ако доставчик се съгласи на формално, дългосрочно изплащане, трябва да прехвърлите задължението от AP в „note 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 в журнал с чист текст
- Отидете без хартия: Съхранявайте PDF‑овете на фактурите в папката
documents
и ги свързвайте с ключаdocument:
. - Използвайте връзки последователно: Поставяйте уникалния номер на фактурата в
^link
както във фактурата, така и във всички свързани плащания. - Поддържайте метаданните чисти: Консистентното използване на
invoice:
,due:
иterms:
подобрява търсенето, запитванията и финансовите прегледи. - Начислително от начало до край: Ако искате полезни отчети за AP, задължително водете книгите си на начислителна база. Beancount и Fava го правят безупречно.
Копирай‑пейст стартов шаблон: Фактура + Плащане
; ---- Фактура ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD
; ---- Плащане ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD