Skip to Content

account.move.line i Odoo: Guide Til Forståelse Af Bogføringslinjer

En grundig vejledning til Odoo's model for kontopostlinjer — målrettet udviklere og funktionskonsulenter
10. marts 2026 af
account.move.line i Odoo: Guide Til Forståelse Af Bogføringslinjer
Dasolo
| Ingen kommentarer endnu

Introduktion


I Odoo beskriver modeller, hvordan forretningsdata organiseres og gemmes i databasen. Al information — fra salgsordrer til fakturaer og bogførte posteringer — repræsenteres gennem modeller, som definerer felter, relationer og lagringsregler.


For både tekniske og funktionelle roller er forståelsen af modeller afgørende. Modeller er Odoos datagrundlag: de fastsætter hvilke felter der findes, hvordan poster hænger sammen, og hvor forretningslogikken skal placeres.

Denne guide zoomer ind på en af de vigtigste regnskabsmodeller i Odoo: account.move.line. Uanset om du skal lave tilpassede rapporter, koble eksterne systemer på eller styre afstemningsprocesser, vil du møde denne model ofte.

Hvad er modellen account.move.line


Modellen account.move.line repræsenterer de enkelte posteringer i en bogføring — hver linje er enten en debet eller en kredit. Når en bogføring (move) er fuldt sammensat, skal summen af debet være lig med summen af kredit.


account.move.line er en del af regnskabspakken og er underordnet account.move, som er den overordnede postering (fx faktura, leverandørfaktura, bankpost eller manuel journal). Én move indeholder altid mindst én move.line.


Selve definitionen findes i account-modulet, men mange andre moduler udvider modellen via Odoo-arv. Salg tilfører fx fakturalinjer, Indkøb tilføjer leverandørlinjer, og analytisk bogføring tilføjer fordelingsfelter — hvert modul bygger videre uden at kopiere kernefunktionen.

Væsentlige felter i modellen


Nedenfor gennemgår vi de vigtigste felter i account.move.line. Kendskab til disse gør det langt nemmere at arbejde med bogføringer, afstemning og rapportering i Odoo.


1. name

Type: Char. Linjens beskrivelse eller etiket. Vigtigt for visninger og udskrifter. På fakturalinjer kommer teksten ofte fra produktnavn eller en tilpasset beskrivelse.


2. move_id

Type: Many2one (account.move). Koblingen til den overordnede bogføring. Hver linje tilhører præcis én move — det er modellens primære relation.


3. account_id

Type: Many2one (account.account). Den konto, linjen bogføres på. Obligatorisk; skal være en ikke-visnings- eller åben konto. Bruges i kontoplanrapportering og gruppering.


4. debit

Type: Float. Debetbeløb. Standard 0.0. På en linje sættes kun enten debit eller credit. Debet øger aktiv- og omkostningskonti.


5. credit

Type: Float. Kreditbeløb. Standard 0.0. Kredit øger passiv-, egenkapital- og indtægtskonti. Summen af debet skal matche summen af kredit i en move.


6. balance

Type: Float. Beregnet felt: debit minus credit. Viser linjens nettovirkning. Positiv ved debet, negativ ved kredit. Bruges i rapporter og ved afstemning.


7. partner_id

Type: Many2one (res.partner). Den kunde eller leverandør, linjen relaterer til. Vigtigt for hæftende poster, aldersopgørelser og afstemning.


8. date

Type: Date. Linjens regnskabsdato. Som regel arvet fra parent-moven. Påvirker periodestyring, lukning og rapportering.


9. date_maturity

Type: Date. Forfaldsdato. Relevant for debitor-/kreditorstyring, bruges i aldersfordelinger og betalingsplaner.


10. currency_id

Type: Many2one (res.currency). Linjens valuta. Muliggør poster i anden valuta end selskabets basevaluta ved multivalutaopstillinger.


11. amount_currency

Type: Float. Beløbet i linjens valuta. Sammen med currency_id håndteres valutatransaktioner og omregning til selskabsvaluta.


12. quantity

Type: Float. Valgfri mængde. Anvendes ved produktbaserede linjer (fakturaer, leverandørfakturaer) til mængdebaseret rapportering og beregning af enhedspriser.


13. product_id

Type: Many2one (product.product). Produktet knyttet til linjen. Fyldes når linjen stammer fra salg, indkøb eller fakturalinje.


14. product_uom_id

Type: Many2one (uom.uom). Enheden for mængden. Bruges sammen med product_id til korrekt visning og konvertering af mængder.


15. price_unit

Type: Float. Enhedspris. Bruges med quantity til at regne beløb ud på faktura- og leverandørlinjer.


16. tax_ids

Type: Many2many (account.tax). Skatter knyttet til linjen. Ved postering oprettes ofte separate skatterlinjer. Bruges til moms- og skatteberegninger.


17. tax_line_id

Type: Many2one (account.tax). På skattelinjer peger dette felt tilbage til den skat, der har skabt linjen. Skelner skattelinjer fra normale kontolinjer.


18. analytic_account_id

Type: Many2one (account.analytic.account). Analytisk konto til sporbarhed af omkostninger/indtægter. Aktiv når analytisk bogføring er slået til.


19. analytic_distribution

Type: Json eller Text. Fordeling på flere analytiske konti. Brugt i nyere Odoo-udgaver som erstatning for enkelt analytic_account_id ved fordelingsplaner.


20. ref

Type: Char. Ekstern reference eller memo, ofte arvet fra parent-moven. Synlig i rapporter og brugt til afstemningsmatchning.


21. narration

Type: Text. Internt notat, typisk relateret fra parent. Udskrives normalt ikke på kunde-dokumenter som standard.


22. journal_id

Type: Many2one (account.journal). Journalen for parent-moven. Praktisk til filtrering og journalrapportering.


23. company_id

Type: Many2one (res.company). Selskabet i multi-selskabsopsætning. Påvirker synlighed og konsolidering.


24. reconciled

Type: Boolean. Angiver om linjen er fuldt afstemt. Bruges til at filtrere uafstemte poster i afstemningsvisninger.


25. full_reconcile_id

Type: Many2one (account.full.reconcile). Samler linjer, der er afstemt sammen. Gør det muligt at følge hele afstemningsgruppen.


26. payment_id

Type: Many2one (account.payment). For betalingslinjer peger dette felt til betalingsposten. Bruges ved afstemning af fakturaer mod betalinger.


27. statement_id

Type: Many2one (account.bank.statement). Ved bankafstemning knyttes linjen til en bankudtogspostering.


28. statement_line_id

Type: Many2one (account.bank.statement.line). Link til den konkrete bankudtogslinje ved matchning af transaktioner.


29. display_type

Type: Selection. Kan være 'line_section' eller 'line_note' for overskrifter og noter i en bogføring. Disse linjer har hverken debit eller credit og er kun til visuel struktur.


30. create_date

Type: Datetime. Tidspunkt for oprettelse. Styrt automatisk af Odoo og nyttig ved revision.


31. write_date

Type: Datetime. Sidste ændringstidspunkt. Også automatisk; hjælper med at spore ændringer over tid.

Sådan bruges modellen i forretningsprocesser


1. Kunde‑fakturering

Når en salgsfaktura bekræftes, opretter Odoo de nødvendige move.lines: indtægtslinjer på indtægtskonti, debitorlinjer på kundekonti og separate skattelinjer for moms. partner_id kobler linjerne til kunden til aldersfordeling og afstemning.


2. Leverandørfakturaer

Leverandørregninger danner linjer for udgifter, indgående moms og kreditorer. Strukturen svarer til salgsfakturaer men benytter de relevante konto-typer for indkøb og omkostninger.


3. Bankafstemning

Bankudtogslinjer matches op imod move.lines via statement_line_id. Ved afstemning samles linjerne ofte gennem full_reconcile_id, og reconciled sættes til True for færdighandlede poster.


4. Manuelle journalposteringer

Brugere kan oprette manuelle journaler med flere linjer — hver linje har konto, debit eller credit og evt. partner. Odoo sørger for, at debet og kredit balancerer før bogføring.



5. Analytisk og omkostningsrapportering

Med analytisk bogføring medtages enten analytic_account_id eller analytic_distribution på linjer, så rapporter kan vise omkostninger og indtægter pr. projekt, afdeling eller anden dimension.

Sådan udvider udviklere modellen


Udviklere bygger videre på account.move.line med forskellige teknikker; Odoo’s arvsmodel er det centrale værktøj.


Modelarv

Angiv _inherit = 'account.move.line' i din moduldefinition for at udvide modellen. Du kan tilføje felter, overskrive metoder eller indføre valideringer. Arv holder ændringerne i et separat modul, hvilket letter opgraderinger.


Tilføjelse af felter

Opret nye felter i den arvede model med de rette typer: Char, Many2one, Boolean, Integer, Text, Selection osv. Overvej selskabsafhængige felter i multi‑company-opsætninger og vær varsom med afhængigheder for beregnede felter.


Python‑udvidelser

Override metoder som create, write eller unlink for at indsætte logik. Brug altid super() for at bevare standardadfærd. Pas på ikke at bryde reglen om balancerede poster — Odoos API er designet til eksterne integrationer via disse hooks.


Odoo Studio

Med Odoo Studio kan du hurtigt lægge ekstra felter på account.move.line uden at kode. Det er fint til simple tilpasninger, men komplekse regler og afstemningslogik er ofte bedst løst i et egentligt modul.

Bedste praksis


  • Gode tommelfingerregler: opret og ændr aldrig move.lines direkte udenom parent‑moven. Brug move‑API’et (fx line_ids) så Odoo kan køre alle valideringer og holde konsistens.
  • Filtrer rapporter og forespørgsler på move_id.state = 'posted' for at udelukke kladder og annullerede posteringer.
  • Sørg for at account_id har korrekt kontotype (debitor, kreditor, mv.) så aldersopgørelser og afstemning fungerer korrekt.
  • Ved integration via API: opret først move‑posteringen, tilføj derefter linjerne, og sørg for at debet og kredit balancerer inden postering.
  • Til pas‑på‑felter i kundemoduler: brug altid x_ eller modulets præfiks i felt‑navne for at undgå navnekonflikter ved fremtidige Odoo‑opgraderinger.

Almindelige fejl


  • Sæt ikke både debit og credit på samme linje. En linje bør kun repræsentere enten en debet eller en kredit.
  • Undgå ubalancerede moves. Summen af debet og kredit skal stemme — Odoo validerer dette ved bogføring.
  • Rediger ikke bogførte linjer direkte. Ændringer i poster, der allerede er bogført, skal ske via modposteringer eller korrektioner, ikke ved at ændre den originale postering.
  • Husk partner_id på debitor‑/kreditorkonti; uden partner bryder afstemning og aldersrapporter.
  • Når du overskriver kernemetoder, kald altid super(). Udeladelse kan ødelægge afstemning, låsninger eller påvirke andre modulers funktionalitet.

Konklusion


account.move.line er kernen i Odoo Regnskab — den gemmer hver eneste debet og kredit i fakturaer, regninger og journaler. At kende felterne og hvordan andre moduler bygger videre på modellen gør det langt nemmere at konfigurere, udvide og integrere Odoo korrekt.

Uanset om du er funktionel konsulent, der skal modellere regnskabsprocesser, eller udvikler, der bygger rapporter og integrationer, vil et solidt greb om account.move.line spare tid og forebygge fejl.

Brug for hjælp til din Odoo-implementering?


Dasolo hjælper virksomheder med implementering, tilpasning og optimering af Odoo. Vi specialiserer os i API‑integrationer og udvikling og har indgående erfaring med Odoos datamodel og centrale modeller som account.move.line.


Har du brug for hjælp til implementering, tilpassede moduler eller integrationer i Odoo, står vi klar til at assistere. Book en demo for at tage en snak om dit projekt.

account.move.line i Odoo: Guide Til Forståelse Af Bogføringslinjer
Dasolo 10. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar