Afegiu directives d'enllaç a la barra lateral amb data a les instàncies estàndard de Fava, després deseu una consulta que trobi saldo final negatiu després de sumar totes les anotacions. Els exemples es van executar amb Beancount 3.2.3, beanquery 0.2.0 i Fava 1.30.16. Utilitzeu la configuració local fixada.
Aquestes URL apunten a un servidor local de Fava. El tauler allotjat de Beancount.io té rutes d'informe diferents i s'abasta per separat a continuació.
Per què personalitzar Fava?
Les dreceres de la barra lateral conserven una vista filtrada. Una consulta desada pot respondre llavors a una pregunta comptable específica sense haver d'introduir-la repetidament.
Punts que resol això:
- Seleccionar repetidament el mes actual o l'anterior.
- Reobrir un informe desat.
- Distingir una sortida de diners d'un compte que en realitat acaba per sota de zero.
✨ Enllaços personalitzats a la barra lateral
Afegiu aquestes directives al llibre major complet sidebar-demo.beancount de la secció següent. Inicieu-lo amb fava sidebar-demo.beancount i obriu el seu informe de diari abans de fer clic a una drecera.
2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="Què fan:
-
/jumpretorna a la pàgina de la capçaleraRefererdel navegador i substitueix els paràmetres de consulta subministrats. No obre sempre l'informe de diari. A la pàgina de balanç, es queda a la pàgina de balanç. Aquest comportament està implementat pel gestor de redirecció estàndard de Fava. -
Mes actual: Estableix
time=montha l'informe actual. -
Mes anterior: Estableix
time=month-1a l'informe actual. -
Neteja-ho tot: Elimina
account,timeifilter. Altres paràmetres, com araconversioniinterval, romanen.
L'exemple de l'any 2021 no tindrà cap transacció al mes actual; utilitzeu Neteja-ho tot abans de reproduir els resultats de la consulta. Una URL /jump requereix una capçalera Referer. Per a una adreça d'interès oberta directament, copieu una URL d'informe complet que funcioni.
A l'arrel del host, /jump?time=month es va provar des de /sidebar-demo/journal/?time=2021&account=Assets: va retornar HTTP 302 al mateix diari amb account=Assets&time=month. L'informe de destinació va retornar 200.
Si un administrador munta tota l'aplicació Fava a /books, cada drecera relativa a l'arrel ha d'incloure aquest prefix. Aquesta és una configuració alternativa, no una altra directiva per afegir juntament amb el Mes actual:
2021-01-01 custom "fava-sidebar-link" "Current Month" "/books/jump?time=month"Una prova de muntatge WSGI local va verificar que /books/jump redirigeix de nou a /books/sidebar-demo/journal/ amb el nou filtre. /jump simple està fora d'aquest muntatge i va retornar 404. Els enllaços personalitzats de Fava conserven la URL subministrada; una barra inicial / significa l'arrel del host, no el llibre major.
Àmbit allotjat, comprovat el 2026-09-07: la font del tauler de Beancount.io utilitza rutes com /ledger/OWNER/LEDGER/income-statement i /ledger/OWNER/LEDGER/query. La seva barra lateral construeix el seu propi menú d'informes. La font inspeccionada no té cap ruta /jump ni un consumidor fava-sidebar-link. Aquesta recepta estàndard no està, doncs, establerta per a aquest tauler. Al producte allotjat, obriu l'informe desitjat i marqueu la seva adreça de treball. La instantània de la font no demostra quina revisió executa una implementació en directe.
🔍 Consultes SQL personalitzades
Deseu aquesta consulta completa com a sidebar-demo.beancount. Inclou deliberadament anotacions positives i negatives a cada compte d'actiu:
option "title" "Sidebar Demo"
option "operating_currency" "USD"
2021-01-01 open Assets:BCM:Positive USD
2021-01-01 open Assets:BCM:Negative USD
2021-01-01 open Equity:Opening-Balances USD
2021-12-01 * "Opening balances"
Assets:BCM:Positive 100.00 USD
Assets:BCM:Negative 20.00 USD
Equity:Opening-Balances -120.00 USD
2021-12-10 * "Outflows"
Assets:BCM:Positive -30.00 USD
Assets:BCM:Negative -50.00 USD
Equity:Opening-Balances 80.00 USD
2022-01-05 * "Refund"
Assets:BCM:Negative 10.00 USD
Equity:Opening-Balances -10.00 USD
2022-01-09 balance Assets:BCM:Positive 70.00 USD
2022-01-09 balance Assets:BCM:Negative -20.00 USDbea --file sidebar-demo.beancount check passa. A principis de gener, Positiu manté 100 - 30 = 70 USD; Negatiu manté 20 - 50 + 10 = -20 USD.
Executeu aquesta consulta a la pàgina de Consultes de Fava estàndard amb els filtres globals nets:
SELECT account, currency, SUM(number) AS ending_balance
FROM postings
WHERE account ~ ':BCM:'
AND date < 2022-01-09
GROUP BY account, currency
HAVING SUM(number) < 0
ORDER BY account, currency;| Compte | Moneda | Saldo final |
|---|---|---|
| Actius:BCM:Negatiu | USD | -20,00 |
Desglossament:
WHERE selecciona les anotacions a agregar. No hi ha límit de data inferior: un saldo final necessita tot l'historial anterior, incloent-hi els saldos inicials de l'1 de desembre. El límit superior exclusiu inclou les transaccions del 8 de gener i n'exclou les del 9.
GROUP BY account, currency manté les mercaderies diferents separades. HAVING SUM(number) < 0 filtra després de sumar les quantitats positives i negatives de cada grup. Això és un saldo final d'unitats per moneda, no un valor de mercat convertit a una moneda. Informa de cada compte exacte, no dels comptes principals agregats.
Per comparació, aquesta consulta executable respon a una pregunta diferent: quant es va moure negativament durant la finestra de revisió?
SELECT account, currency, SUM(number) AS negative_postings
FROM postings
WHERE account ~ ':BCM:'
AND number < 0
AND date >= 2021-12-09 AND date < 2022-01-09
GROUP BY account, currency
ORDER BY account, currency;| Compte | Moneda | Moviments negatius |
|---|---|---|
| Actius:BCM:Negatiu | USD | -50,00 |
| Actius:BCM:Positiu | USD | -30,00 |
La segona consulta omet els reemborsaments i els saldos inicials. La seva fila -30.00 USD no significa que Positiu estigui en descobert. Afegir un límit de data inferior a la primera consulta produiria en canvi el moviment net durant un període, no un saldo final. Vegeu la referència de BQL per a més sintaxi de consulta.
Casos d'ús:
- Comprovar comptes d'actiu per quantitats negatives inesperades.
- Revisar els moviments negatius per separat quan investigueu sortides o reversions.
- Conciliar el saldo reportat amb l'historial inicial i l'activitat posterior abans de tractar una anomalia. Un saldo negatiu de passiu o ingressos pot ser normal.
🛠 Consell professional: Combineu enllaços i consultes
Fava sí que admet enllaços a consultes. Afegiu aquesta drecera i consulta desada a sidebar-demo.beancount:
2021-01-01 query "negative-balances" "SELECT account, currency, SUM(number) AS ending_balance FROM postings WHERE account ~ ':BCM:' AND date < 2022-01-09 GROUP BY account, currency HAVING SUM(number) < 0 ORDER BY account, currency"
2021-01-01 custom "fava-sidebar-link" "Negative Balances" "/sidebar-demo/query/?query_string=.run+%22negative-balances%22"La directiva de consulta també apareix a la barra lateral de consultes desades de Fava, subjecte a sidebar-show-queries (per defecte 5). La drecera explícita apunta a l'identificador de sidebar-demo i executa la consulta anomenada. La pàgina de Consultes estàndard llegeix query_string de la URL; la seva API de consulta va retornar la mateixa fila única -20.00 USD a la prova local. Vegeu el component de Consultes amb versió.
Utilitzeu l'identificador real del vostre llibre major en un entorn diferent. Sota el muntatge /books, la drecera es converteix en /books/sidebar-demo/query/?query_string=.run+%22negative-balances%22. Mantingueu els filtres globals nets per a un saldo final complet; un filtre de data pot eliminar l'historial inicial abans que s'executi la consulta desada.
Reflexions finals
Utilitzeu les dreceres de mes per navegar pels informes, i utilitzeu la consulta desada per comprovar un saldo final reproduïble. Quan reviseu el vostre pressupost, distingiu sortides, moviment del període i saldos de tancament abans d'interpretar un nombre negatiu. Per a més informes, vegeu la documentació d'extensions de Fava i la guia d'IU.