Преминете към основното съдържание

Една публикация маркиран с/със "задължения към доставчици"

Вижте всички етикети

Какво е задължения към доставчици? Ръководство, съвместимо с Beancount, за проследяване на фактури от доставчици в чист текст

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

Задължения към доставчици (AP) са парите, които вашият бизнес дължи на доставчиците за стоки или услуги, които вече сте получили, но все още не сте платили. В света на счетоводството AP се класифицира като текущ пасив в баланса – сума, обикновено дължима в рамките на следващата година, често в 30‑60 дни.

Тази концепция е централна за начислителното счетоводство, където разходът и съответният пасив се записват в момента, в който фактурата пристигне, а не когато парите действително се изпратят. Това ръководство ще ви покаже как да управлявате целия процес на AP чисто и ефективно, използвайки инструмента за счетоводство в чист текст – Beancount.

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


Кратко резюме

Преди да се потопим в детайлите, нека обхванем основните неща:

  • Задължения към доставчици (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 се базира на няколко основни функции:

  1. Сметки: Основно ще използвате Liabilities:AccountsPayable, кешова сметка като Assets:Bank:Checking и различните си разходни сметки (например Expenses:Supplies).
  2. Метаданни: Можете да прикачвате ключ‑стойност данни към всяка транзакция. За AP ще използвате метаданни като invoice:, due:, terms: и document:. Fava дори разпознава ключа document: и автоматично създава кликваща връзка към прикачения файл, ако сте конфигурирали папка за документи.
  3. Тагове & Връзки: Използвайте #tags (например #ap) за лесно филтриране и ^links (например ^INV-10455) за програмно свързване на фактура и последващото й плащане. Това създава ясен, одитируем след.
  4. Запитвания (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

Този един запис постига две критични неща:

  1. Незабавно признава разход от 500 USD в правилния период (август).
  2. Създава съответстващ пасив от 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 SheetLiabilitiesAccountsPayable, за да видите общия остатък и да навигирате до детайлите на транзакциите.
  • Журнал: Филтрирайте журнала с 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