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

Какво е задължение към доставчици? Определение, примери и AP срещу AR (2026)

Публикувано Последно обновено 18 минути четенеMike ThriftMike Thrift
Какво е задължение към доставчици? Определение, примери и AP срещу AR (2026)
На тази страница

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

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


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

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

  • Задължения към доставчици (AP) представлява вашите краткосрочни дългове към доставчици. Ще ги намерите в раздела Liabilities (Пасиви) на вашия баланс.
  • Начисляване срещу Касово: AP е концепция, която съществува само ако водите книгите си на принципа на начисляване. Beancount напълно поддържа работни процеси по начисляване, а неговият уеб интерфейс, Fava, ще покаже правилно вашите пасиви.
  • AP срещу AR: Просто е: Задълженията (Payables) са това, което вие дължите, докато вземанията (Receivables, AR) са това, което другите ви дължат.

Къде се намира AP в Beancount (и Fava)

За да започнете да проследявате AP, първо трябва да декларирате сметка за него в главната си книга. Стандартна конвенция е:

Liabilities:AccountsPayable

По желание можете да създадете подсметки за основни доставчици (напр., Liabilities:AccountsPayable:ForestPaintSupply).

Във Fava тази сметка ще се появи в баланса ви под Liabilities. Можете да кликнете върху нея, за да се задълбочите и да видите осчетоводяванията, които формират баланса. Можете дори да видите това в действие в публичния примерен регистър на Fava, който включва сметка Liabilities:AccountsPayable.

Знакова конвенция: Beancount съхранява пасивните баланси като кредити (отрицателни числа). Баланс от -500.00 USD на Liabilities:AccountsPayable означава, че дължите $500. Отчетът за отворени позиции по-долу обръща знака с -SUM(number), така че всяка неплатена фактура показва положителна дължима сума. Напълно уредена фактура дава сума нула и се изключва от HAVING.


Основни градивни елементи на Beancount, които ще използвате

Стабилният работен процес за AP в Beancount разчита на няколко основни функции:

  1. Сметки: Основно ще използвате сметката си Liabilities:AccountsPayable, касова сметка като Assets:Bank:Checking и различните си разходни сметки (напр., Expenses:Supplies).
  2. Метаданни: Можете да прикачите данни във формат ключ-стойност към всяка транзакция. За AP ще използвате метаданни като invoice:, due:, terms: и document:. Задайте option "documents" към папка, така че Beancount да може да открива файлове там; във Fava, пускането на файл върху ред от дневника вмъква запис на метаданни document:, а активирането на plugin "fava.plugins.link_documents" свързва тези записи с откритите документи.
  3. Тагове и връзки: Използвайте #тагове (като #ap) за лесно филтриране и ^връзки (като ^INV-10455), за да свържете програмно фактура и последващото ѝ плащане. Това създава ясна, проверима следа в дневника — но самите връзки не са достатъчни за заявката за отворени фактури по-долу.
  4. Заявки (BQL): Подобният на SQL език за заявки на Beancount (BQL) ви позволява да изпълнявате мощни отчети, като например списък на всички отворени задължения, сортирани по падеж, директно от командния ред с bean-query или на страницата "Query" във Fava.

Идентичност на фактурата (задължителна за заявки за отворени фактури): Всяка фактура и всяко уреждащо плащане — пълно, частично или с ранен отстъпки — трябва да носи същите метаданни на транзакцията invoice: и due:, както и същата ^връзка. Заявката групира по payee, any_meta('invoice') и any_meta('due'). Ако плащане пропусне тези ключове, неговото осчетоводяване на AP попада в отделна група (payee, null, null) и уредена фактура все още изглежда отворена. Поддържайте (payee, invoice) уникални за различните доставчици. По желание полетата, специфични само за фактурата, като terms: и document:, не е необходимо да се повтарят при плащанията.


Основен работен процес за 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. Той кредитира AP с $500 (-500.00 USD), записвайки, че дължите на Forest Paint Supply тази сума.

Връзката ^INV-10455 плюс метаданните invoice: / due: формират идентичността на фактурата. Всяко по-късно плащане на тази фактура трябва да използва повторно и трите.

2) Плащане на фактурата (Това изчиства пасива)

Когато платите фактурата, създавате транзакция, която премества пари от банковата ви сметка, за да изчистите задължението. Копирайте invoice: и due: от фактурата върху плащането, така че и двете осчетоводявания да споделят една група на заявката.

а) Стандартно плащане (без отстъпка):

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

Този запис намалява баланса на AP с $500 и баланса на разплащателната ви сметка със същата сума. Задължението за тази фактура вече е изчистено (сумата на AP в групата е нула). Разходът остава във фактурата от август — плащането не засяга Expenses:.

б) Отстъпка за ранно плащане (напр., "2/10, n/30") — изберете точно един метод:

Ако условията са "2/10, n/30", можете да се възползвате от 2% отстъпка, ако платите в рамките на 10 дни. За нашата фактура от $500 това е отстъпка от $10. Оградата по-долу показва две взаимно изключващи се алтернативи: Вариант 1 е активен; Вариант 2 е напълно коментиран, така че поставянето не може да осчетоводи и двете. За да използвате Вариант 2 вместо това, коментирайте Вариант 1 и разкоментирайте Вариант 2. Никога не оставяйте и двете активни — това изчиства AP два пъти и измисля втора полза от $10. Коя сметка за приходи срещу разходи използвате, е въпрос на счетоводна политика за вашите книги; Beancount не изисква една пред друга.

; Pick EXACTLY ONE of the two transactions below for a given invoice.
; Do not paste both into the same ledger — that clears AP twice.
 
; Option 1: Record the discount as other income
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  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
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Expenses:Supplies:Paint         -10.00 USD

При всяка от алтернативите поотделно вие изчиствате пълното задължение от $500, намалявате банковия си баланс с $490, които реално сте платили, и отчитате ползата от $10. Заменете стандартната транзакция за пълно плащане с избраната алтернатива — не наслагвайте плащане с отстъпка върху плащането в брой от $500 и не комбинирайте тази ограда с раздел 2а за същата фактура.

3) Обработка на частични плащания

Използвайте повторно същата идентичност invoice: / due: / ^връзка при всяка вноска, така че всяко плащане да намалява същата група отворени фактури.

; 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
  invoice: "INV-9001"
  due: "2025-09-09"
  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
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     800.00 USD
  Assets:Bank:Checking           -800.00 USD

След първото плащане сумата на AP в групата на фактурата е -800.00 USD (все още дължите $800). След последното плащане тя е нула. Филтрирането на дневника по ^INV-9001 все още показва пълната история.


Полезни заявки (BQL)

Можете да изпълните тези заявки в раздела "Query" на Fava или от командния ред с bean-query (справка за BQL). Проверени по-долу с Beancount 3.2.3 и beanquery 0.2.0.

Съвет: Функцията any_meta() търси ключ на метаданни първо в осчетоводяването, след което се връща към транзакцията — така че стойностите на invoice: / due: на ниво транзакция се появяват в резултатите.

Отворени AP по доставчик (изглед на баланса):

Тази заявка сумира инвентара на задълженията за всеки доставчик. Кредит (отрицателна) обща сума е това, което все още дължите на този доставчик.

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

Отворени фактури към фиксирана дата (отчет за отворени позиции):

Отчетът за отворени позиции отговаря на „какво остава неплатено?“. Той трябва (1) да спре на изрична дата към момента, така че по-късни плащания да не могат тихо да изчистят по-ранен моментен снимков запис, (2) да групира по споделената идентичност на фактурата (payee + invoice: + due:), (3) да изключи уредени (нулеви) групи и (4) да покаже положителна дължима сума — а не суров подписан кредит по AP.

Отчетна дата, използвана навсякъде по-долу: 2025-09-04.

Изтегляема начална главна книга за AP

Изтеглете accounts-payable-starter.bean — една самостоятелна главна книга, генерирана от пълната ограда по-долу (откриване на сметки, измислено начално салдо в брой, уредени / частични / неплатени фактури, към 2025-09-04). Всяко име и сума са измислени примерни данни. Не се изисква PDF на фактура, папка за документи или друг файл, за да я проверите или направите заявка към нея.

Първо стартиране от чиста временна директория (фиксирани Beancount 3.2.3 / beanquery 0.2.0):

# Save the download as accounts-payable-starter.bean in this directory, then:
uvx --from beancount==3.2.3 bean-check accounts-payable-starter.bean
 
uvx --from beanquery==0.2.0 --with beancount==3.2.3 bean-query accounts-payable-starter.bean \
  "SELECT payee, any_meta('invoice') AS invoice, any_meta('due') AS due, -SUM(number) AS outstanding WHERE account ~ '^Liabilities:AccountsPayable' AND date <= 2025-09-04 GROUP BY payee, invoice, due HAVING SUM(number) < 0 ORDER BY due, payee"

bean-check излиза с код 0 и без изход. Заявката връща петте отворени реда в очакваната таблица по-долу (Forest отсъства; Acme дължима сума 800.00; сума на положителните дължими суми = 1500.00). Регенерирайте ангажираното изтегляне с yarn generate:ap-starter след редактиране на оградата; yarn generate:ap-starter --check се проваля, ако артефактът е остарял.

Поставете този пълен тестов сет (откривания + начално салдо + трите форми на фактури, плюс редове за дължими днес / просрочени / специални случаи за стареене). Алтернативите за ранен отстъпки за INV-10455 остават напълно коментирани — активирайте точно една само ако замените стандартното плащане на Forest; никога не оставяйте и двете опции за отстъпка активни заедно с това плащане.

; accounts-payable-starter — complete runnable AP workflow
option "operating_currency" "USD"
 
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Equity:Opening-Balances USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies:Paint USD
2025-01-01 open Expenses:Parts USD
2025-01-01 open Expenses:Office USD
2025-01-01 open Income:Discounts:Payables USD
 
; Fictional opening cash — enough to cover every payment in this ledger
2025-01-01 * "Opening balance"
  Assets:Bank:Checking           5000.00 USD
  Equity:Opening-Balances       -5000.00 USD
 
; Settled before as-of — must disappear from the open report
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD
 
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD
 
; Early-payment discount alternatives for INV-10455 — mutually exclusive with
; the standard payment above AND with each other. To take 2/10 instead: delete
; (or comment out) the 2025-09-01 payment, then uncomment EXACTLY ONE option.
; Never leave both options active — that clears AP twice.
;
; Option 1: Record the discount as other income
; 2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   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
;   invoice: "INV-10455"
;   due: "2025-09-04"
;   Liabilities:AccountsPayable     500.00 USD
;   Assets:Bank:Checking           -490.00 USD
;   Expenses:Supplies:Paint         -10.00 USD
 
; Partial before as-of; final $800 payment is AFTER 2025-09-04
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
 
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     400.00 USD
  Assets:Bank:Checking           -400.00 USD
 
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
  invoice: "INV-9001"
  due: "2025-09-09"
  Liabilities:AccountsPayable     800.00 USD
  Assets:Bank:Checking           -800.00 USD
 
; Unpaid — not yet due as of 2025-09-04
2025-08-15 * "Bright Office Co" "INV-220" ^INV-220
  invoice: "INV-220"
  due: "2025-09-14"
  Expenses:Office                 300.00 USD
  Liabilities:AccountsPayable    -300.00 USD
 
; Unpaid — due today (as-of == due)
2025-08-20 * "Helix Industries" "INV-440" ^INV-440
  invoice: "INV-440"
  due: "2025-09-04"
  Expenses:Parts                  200.00 USD
  Liabilities:AccountsPayable    -200.00 USD
 
; Unpaid — 30 days overdue as of 2025-09-04
2025-07-06 * "Metro Hardware" "INV-77" ^INV-77
  invoice: "INV-77"
  due: "2025-08-05"
  Expenses:Parts                  150.00 USD
  Liabilities:AccountsPayable    -150.00 USD
 
; Overpayment — credit balance (not an amount due; see edge cases)
2025-08-01 * "Credit Vendor" "INV-C1" ^INV-C1
  invoice: "INV-C1"
  due: "2025-08-20"
  Expenses:Parts                  100.00 USD
  Liabilities:AccountsPayable    -100.00 USD
 
2025-08-18 * "Credit Vendor" "Overpay INV-C1" ^INV-C1
  invoice: "INV-C1"
  due: "2025-08-20"
  Liabilities:AccountsPayable     150.00 USD
  Assets:Bank:Checking           -150.00 USD
 
; Missing due metadata — still open; age into a separate bucket, do not drop
2025-08-12 * "No Due Co" "INV-ND" ^INV-ND
  invoice: "INV-ND"
  Expenses:Office                  50.00 USD
  Liabilities:AccountsPayable     -50.00 USD

Заявка за отворени позиции (beanquery 0.2.0 поддържа HAVING SUM(number) < 0; той не поддържа сравняване на inventory с 0 с COST(SUM(position)) != 0):

SELECT payee,
       any_meta('invoice') AS invoice,
       any_meta('due')     AS due,
       -SUM(number)        AS outstanding
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04
GROUP BY payee, invoice, due
HAVING SUM(number) < 0
ORDER BY due, payee;

Очаквани редове към 2025-09-04 (изведени независимо от транзакциите: фактура − плащания, датирани ≤ отчетна дата; Forest дава нула и отсъства):

payeeinvoicedueoutstanding
No Due CoINV-ND(празно)50.00
Metro HardwareINV-772025-08-05150.00
Helix IndustriesINV-4402025-09-04200.00
Acme PartsINV-90012025-09-09800.00
Bright Office CoINV-2202025-09-14300.00

Сума на положителните дължими суми = 1,500.00. Фактурата на Forest за $500 е изчезнала. Acme все още показва $800 ($1,200 − $400); плащането от $800 на 2025-09-05 е след отчетната дата, така че не може да затвори този моментен снимков запис.

Съгласувайте с пасива по AP към същия момент на прекъсване:

SELECT COST(SUM(position)) AS ap_balance
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04;

Очаквано: ap_balance = (-1450.00 USD). Независимо: отворена дължима сума $1,500 минус кредита от $50 на доставчик (по-долу) = $1,450 дължими → пасивен инвентар -1450.00 USD.

Преместете отчетната дата с един ден напред (date <= 2025-09-05) и стартирайте отново заявката за отворени позиции: редът на Acme изчезва (включено е последното плащане), а ap_balance става (-650.00 USD). Плащане след отчетната дата никога не пренаписва по-ранния отчет.

Кредити от доставчици / надплащания: HAVING SUM(number) < 0 запазва само сумите, които все още дължите. Надплащане обръща сумата на AP в групата в положителна. Избройте тези отделно — не третирайте положителен баланс по AP като „дължима сума“:

SELECT payee,
       any_meta('invoice') AS invoice,
       any_meta('due')     AS due,
       SUM(number)         AS credit
WHERE account ~ "^Liabilities:AccountsPayable"
  AND date <= 2025-09-04
GROUP BY payee, invoice, due
HAVING SUM(number) > 0
ORDER BY payee;

Очаквано: един ред — Credit Vendor / INV-C1 / 2025-08-20 / credit = 50.00 (надплатили сте с $50).

Липсващ due:: INV-ND все още се появява в отчета за отворени позиции с празен падеж. Остарявайте я в специална кофа missing-due (по-долу); никога не я пропускайте мълчаливо.

Списък на фактури с прикачени 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, за да видите пълния жизнен цикъл на фактура.
  • Документи: С зададена option "documents", Beancount открива файлове в това дърво. Прегледите на документи във Fava и приставката link_documents (вижте по-горе) свързват тези файлове с транзакции, които носят метаданни document:.

Стареене на AP, оборот и осъзнаване на паричния поток

График за стареене (възпроизводим експорт + кофи): beanquery 0.2.0 може да издаде редовете за отворени позиции по-горе, но не предоставя вграден израз за кофа за стареене върху метаданните due. Експортирайте отчета за отворени позиции, след което групирайте в кофи детерминистично спрямо същата отчетна дата.

bean-query -f csv -o open-ap.csv accounts-payable-starter.bean \
  "SELECT payee, any_meta('invoice') AS invoice, any_meta('due') AS due, -SUM(number) AS outstanding WHERE account ~ '^Liabilities:AccountsPayable' AND date <= 2025-09-04 GROUP BY payee, invoice, due HAVING SUM(number) < 0 ORDER BY due, payee"

Колони в CSV: payee, invoice, due, outstanding.

Правило за кофа за отчетна дата D = 2025-09-04 и due на всеки ред (ISO YYYY-MM-DD):

УсловиеКофа
due празноmissing-due
due > Dnot-yet-due
due == Ddue-today
1 ≤ (D − due) ≤ 301-30-overdue
31 ≤ (D − due) ≤ 6031-60-overdue
(D − due) ≥ 6161+-overdue

Компактен Python (само стандартна библиотека), който прилага тази таблица:

from datetime import date
 
AS_OF = date(2025, 9, 4)
# Apply bucket() to each CSV row's due column (ISO YYYY-MM-DD or empty).
 
def bucket(due: str | None) -> str:
    if not due:
        return "missing-due"
    days = (AS_OF - date.fromisoformat(due)).days
    if days < 0:
        return "not-yet-due"
    if days == 0:
        return "due-today"
    if days <= 30:
        return "1-30-overdue"
    if days <= 60:
        return "31-60-overdue"
    return "61+-overdue"

Очаквано стареене за отворените редове към 2025-09-04:

invoicedueдни след падежкофаoutstanding
INV-ND(празно)missing-due50.00
INV-772025-08-05301-30-overdue150.00
INV-4402025-09-040due-today200.00
INV-90012025-09-09−5not-yet-due800.00
INV-2202025-09-14−10not-yet-due300.00

Дължими днес не се включват в „текущи“: due == as-of е собствена кофа. Не все още дължими изисква due > as-of.

  • Коефициент на оборот на AP: Общо покупки от доставчици ÷ Среден AP. Свързан показател, Дни на неизплатени задължения (DPO), е приблизително 365 ÷ Коефициент на оборот.
  • Ако не можете да платите навреме: AP е предназначен за краткосрочен дълг. Ако доставчик се съгласи на формално, дългосрочно изплащане, прекласифицирайте извън AP в дължима записка — запазете същата идентичност на фактурата при преобразуването, така че групата по AP да се изчисти.
2025-10-01 * "Helix Industries" "Convert overdue AP to 12-month note" ^INV-1110
  invoice: "INV-1110"
  due: "2025-09-15"
  Liabilities:AccountsPayable    2000.00 USD
  Liabilities:NotesPayable      -2000.00 USD

Най-добри практики за AP в главна книга в обикновен текст

  • Преминете към безхартиен принцип: Съхранявайте PDF файловете на фактурите в дървото на документите си и ги прикачвайте с ключа на метаданните document: (както и с качване във Fava / link_documents, когато използвате Fava).
  • Използвайте повторно идентичността на фактурата при плащания: Поставете същите invoice:, due: и ^връзка върху фактурата и върху всяко плащане, което я урежда.
  • Отчитайте към определена дата: Ограничете заявките за отворени позиции и стареене с date <= YYYY-MM-DD, така че по-късно плащане да не може да пренапише по-ранен моментен снимков запис; остарявайте със същата D.
  • Поддържайте метаданните подредени: Последователното използване на invoice:, due: и terms: подобрява търсенето, заявките и финансовите прегледи.
  • Начисляване през цялото време: Ако искате полезна отчетност за AP, ангажирайте се да водите книгите си на принципа на начисляване. Beancount и Fava обработват начислените баланси в баланса без специални приставки.

Стартов набор за копиране и поставяне: Фактура от доставчик + Плащане

За пълния работен процес с отворени позиции (уредени + частични + неплатени, отчетна дата, стареене), предпочитайте изтегляемия AP стартер по-горе. Минималната двойка фактура + плащане по-долу все пак показва идентичност и в двата крака — отворете сметките първо (или включете тези откривания в основната си главна книга). По желание метаданните document: са пропуснати тук, така че нищо извън главната книга не се изисква.

option "operating_currency" "USD"
 
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Liabilities:AccountsPayable USD
2025-01-01 open Expenses:Supplies:Paint USD
 
; ---- Bill ----
2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
  invoice: "INV-10455"
  due: "2025-09-04"
  Expenses:Supplies:Paint         500.00 USD
  Liabilities:AccountsPayable    -500.00 USD
 
; ---- Payment (no discount) ----
2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
  invoice: "INV-10455"
  due: "2025-09-04"
  Liabilities:AccountsPayable     500.00 USD
  Assets:Bank:Checking           -500.00 USD

С Beancount 3.2.3 и beanquery 0.2.0, зареждането на този стартер не създава грешки, сметката по AP се изчиства до нула, а заявката за фактура + падеж връща една група (Forest Paint Supply, INV-10455, 2025-09-04), чиято сума е празна (уредена) — не фактуриран ред плюс осиротял ред на плащане (…, null, null).


Това ръководство е с образователна цел и не представлява данъчен, правен или финансов съвет.

Препратки и допълнително четене:

Споделете тази статия

Източник: https://beancount.io/bg/blog/2025/08/20/what-is-accounts-payable

Публикувано: 20 август 2025 г.

Последно обновено: 15 септември 2026 г.