Skip to Content

Forstå Odoos Journalpostlinjer: Modellen account.move.line

En komplet guide til Odoos journalpostlinjemodel for udviklere og funktionelle konsulenter
10. marts 2026 af
Forstå Odoos Journalpostlinjer: Modellen account.move.line
Dasolo
| Ingen kommentarer endnu

Introduktion


I Odoo definerer modeller, hvordan data er struktureret og gemt i databasen. Hver enkelt del af forretningsdata, du arbejder med, fra salgsordrer til fakturaer til journalindgange, findes i en model.


At forstå Odoo-modeller er essentielt for både udviklere og funktionelle konsulenter. Modellerne er fundamentet for Odoo's dataarkitektur. De definerer Odoo-felter, relationer og forretningslogik.

Denne artikel fokuserer på en af de vigtigste modeller i Odoo Accounting: account.move.line. Uanset om du bygger tilpassede rapporter, integrerer eksterne systemer eller konfigurerer afstemningsarbejdsgange, vil du arbejde med denne model.

Hvad er account.move.line modellen


Modellen account.move.line repræsenterer individuelle journalpostlinjer i Odoo. Hver linje er en debet eller kredit i en journalpost. Sammen skal linjerne i en journalpost balancere: samlede debiteringer skal være lig med samlede krediteringer.


Denne model i Odoo bruges af regnskabsmodulet. Det er barnet af account.move, som repræsenterer selve journalposten (fakturaer, regninger, bankudtog, journalposter). Hver journalpost har en eller flere linjer.


Modellen er defineret i account-modulet. Andre moduler udvider det gennem Odoo-modelarv. Salg tilføjer fakturalinjedetaljer. Indkøb tilføjer regningslinjedetaljer. Kontoanalytisk tilføjer analytisk fordeling. Hvert modul tilføjer hvad det har brug for uden at duplikere den grundlæggende struktur.

Nøglefelter i modellen


Her er de vigtigste Odoo-felter i account.move.line-modellen. At forstå disse vil hjælpe dig med at arbejde effektivt med journalposter og regnskabsdata.


1. navn

Type: Char. Dette felt gemmer etiketten eller beskrivelsen af linjen. Det er påkrævet og vises typisk i visninger og rapporter for journalposter. For fakturalinjer kommer det ofte fra produktnavnet eller en brugerdefineret beskrivelse.


2. move_id

Type: Many2one (account.move). Knytter linjen til dens overordnede journalpost. Hver linje tilhører præcist én bevægelse. Dette er det primære forhold i modellen.


3. account_id

Type: Many2one (account.account). Den konto, som denne linje er postet til. Påkrævet. Skal være en ikke-visningskonto, ikke-lukket konto. Bruges til rapportering og gruppering af kontoplaner.


4. debit

Type: Float. Debetbeløbet. Standard er 0,0. For hver linje er enten debet eller kredit angivet, ikke begge. Debiteringer øger aktiver og udgiftskonti.


5. kredit

Type: Float. Kreditbeløbet. Standard er 0.0. Kreditter øger forpligtelser, egenkapital og indtægtskonti. Summen af alle debiteringer skal være lig med summen af alle kreditter i en bevægelse.


6. balance

Type: Float. Et beregnet felt: debet minus kredit. Repræsenterer den nettoeffekt, som linjen har. Positiv for debiteringer, negativ for kreditter. Bruges i rapporter og afstemning.


7. partner_id

Type: Many2one (res.partner). Kunden, leverandøren eller en anden part knyttet til denne linje. Bruges til opfølgning på tilgodehavender og gæld, aldringsrapporter og afstemning.


8. dato

Type: Date. Den effektive dato for linjen. Normalt arvet fra den overordnede bevægelse. Bruges til periodeafslutning, rapportering og aldring.


9. forfaldsdato

Type: Date. Forfaldsdatoen for betaling. Relevant for tilgodehavender og gæld. Bruges til aldringsrapporter og betalingsplanlægning.


10. valuta_id

Type: Many2one (res.currency). Valutaen for linjen. Kan være forskellig fra virksomhedens valuta for poster med flere valutaer.


11. amount_currency

Type: Float. Beløbet i linjens valuta. Bruges når journalposten er i en fremmed valuta. Sammen med currency_id muliggør det fler-valuta regnskab.


12. quantity

Type: Float. Valgfri mængde. Bruges til produktbaserede linjer (fakturaer, regninger). Muliggør mængdebaseret rapportering og beregning af enhedspriser.


13. product_id

Type: Many2one (product.product). Produktet knyttet til denne linje. Udfyldes når linjen kommer fra en salgsordre, indkøbsordre eller fakturalinje.


14. product_uom_id

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


15. price_unit

Type: Float. Enhedsprisen. Bruges sammen med mængden til at beregne beløb på faktura- og regningslinjer.


16. tax_ids

Type: Many2many (account.tax). Skatter anvendt på denne linje. Odoo opretter yderligere linjer for skattebeløb ved bogføring. Bruges til moms og andre skatteberegninger.


17. tax_line_id

Type: Many2one (account.tax). For tax lines, this references the tax that generated the line. Distinguishes tax lines from regular account lines.


18. analytic_account_id

Type: Many2one (account.analytic.account). Den analytiske konto til omkostnings- og indtægtsopfølgning. Bruges når analytisk regnskab er aktiveret.


19. analytic_distribution

Type: Json eller Text. Gemmer analytisk fordeling på tværs af flere analytiske konti. Erstatter analytic_account_id i nyere Odoo-versioner, når der anvendes analytiske planer.


20. ref

Type: Char. Normalt relateret til den overordnede bevægelse. Ekstern reference eller memo. Vist på rapporter og brugt til afstemningsmatch.


21. narration

Type: Text. Normalt relateret til den overordnede bevægelse. Intern note eller memo. Ikke trykt på kundevendte dokumenter som standard.


22. journal_id

Type: Many2one (account.journal). Journalen for den overordnede bevægelse. Bruges til filtrering og rapportering efter journal.


23. company_id

Type: Many2one (res.company). Virksomheden. I multi-virksomhedsopsætninger tilhører hver linje én virksomhed. Påvirker synlighed af poster og konsolidering.


24. reconciled

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


25. full_reconcile_id

Type: Many2one (account.full.reconcile). Knytter alle linjer, der er blevet afstemt sammen. Muliggør sporing af afstemningsgrupper.


26. payment_id

Type: Many2one (account.payment). For betalingslinjer, knytter til betalingsposten. Bruges ved afstemning af fakturaer med betalinger.


27. statement_id

Type: Many2one (account.bank.statement). For bankudskriftlinjer, knytter til udskriften. Bruges i bankafstemning.


28. statement_line_id

Type: Many2one (account.bank.statement.line). Knytter til den specifikke bankudskriftlinje. Bruges ved matchning af bevægelser til banktransaktioner.


29. display_type

Type: Valg. Kan være 'line_section' eller 'line_note' for sektion overskrifter og noter i journalindgangen. Disse linjer har ingen debet eller kredit og er kun til visning.


30. create_date

Type: Dato og tid. Gemmer hvornår posten blev oprettet. Administreres automatisk af Odoo. Nyttig til revision.


31. write_date

Type: Dato og tid. Gemmer hvornår posten sidst blev ændret. Administreres automatisk. Hjælper med at spore ændringer over tid.

Hvordan denne model bruges i forretningsarbejdsgange


1. Kunde Fakturering

Når du bekræfter en faktura, opretter Odoo account.move.line poster. Indtægtslinjer går til indtægtskonti. Tilgodehavende linjer går til kundens tilgodehavende konto. Skatlinjer oprettes for hver skat. partner_id linker til kunden for aldring og afstemning.


2. Leverandørregninger

Regninger opretter linjer for udgifter, indgående moms og forpligtelser. Hver linje har en account_id, debet eller kredit, og partner_id. Strukturen spejler kunde fakturaer, men med forskellige kontotyper.


3. Bankafstemning

Bankudtalelseslinjer matches til move linjer via statement_line_id. Når du afstemmer, linker Odoo linjerne gennem full_reconcile_id. Det afstemte felt sættes til True.


4. Manuel Journalindlæg

Brugere opretter journalindlæg med flere linjer. Hver linje har en konto, debet eller kredit, og en valgfri partner. Odoo håndhæver, at debet svarer til kredit, før indlægget offentliggøres.



5. Analytisk og omkostningsrapportering

Når analytisk regnskab er aktiveret, bærer linjer analytic_account_id eller analytic_distribution. Rapporterne grupperer efter analytisk konto for at vise omkostninger og indtægter pr. projekt, afdeling eller anden dimension.

Hvordan udviklere udvider denne model


Udviklere udvider account.move.line ved hjælp af flere mønstre. Odoo modelarv er den primære mekanisme.


Modelarv

Brug _inherit = 'account.move.line' for at udvide modellen. Tilføj nye Odoo-felter, overskriv metoder eller tilføj begrænsninger. Den arvede model i Odoo holder dine ændringer i et separat modul for nemme opgraderinger.


Tilføjelse af felter

Definer nye Odoo-felter i din arvede model. Brug den rigtige felttype: Char, Many2one, Boolean, Integer, Text, Selection. Overvej virksomhedafhængige felter til flere virksomheder. Vær forsigtig med beregnede felter og deres afhængigheder.


Python-udvidelser

Overskriv create, write eller unlink for at tilføje logik. Brug super() til at kalde den oprindelige. Undgå at bryde debet-lige-kredit invariant. API-modellen i Odoo eksponerer disse metoder til eksterne integrationer.


Odoo Studio

Odoo Studio lader dig tilføje felter til account.move.line uden kode. Godt til hurtige tilpasninger som ekstra etiketter eller tags. For kompleks logik eller afstemningsregler er tilpassede moduler mere vedligeholdelige.

Bedste praksis


  • Opret eller ændr aldrig bevægelinjer direkte uden at gå gennem bevægelsen. Brug bevægelsens API (f.eks. line_ids), så Odoo kan opretholde konsistens og udføre alle kontroller.
  • Når du bygger rapporter, filtrer efter move_id.state = 'posted' for at udelukke udkast og annullerede poster.
  • Brug account_id med den rigtige kontotype (tilgodehavende, skyldig osv.) for korrekt aldring og afstemningsadfærd.
  • Når du integrerer via API, opret bevægelsen først, og tilføj derefter linjer. Sørg for, at debiteringer er lig med krediteringer, før du poster.
  • For brugerdefinerede felter, brug x_ præfikset eller et modulpræfiks for at undgå konflikter med fremtidige Odoo-versioner.

Almindelige fejl


  • Indstilling af både debet og kredit på samme linje. Hver linje skal have enten debet eller kredit, ikke begge.
  • Oprettelse af ubalancerede bevægelser. Summen af debiteringer skal være lig med summen af krediteringer. Odoo validerer dette ved postering.
  • Ændring af postede linjer uden at bruge den rette omvendelses- eller justeringsworkflow. Postede poster bør justeres via nye bevægelser, ikke direkte redigeringer.
  • At glemme at indstille partner_id på tilgodehavende og skyldige linjer. Dette bryder aldringsrapporter og afstemning.
  • Overskrivning af kerne metoder uden at kalde super(). Dette kan bryde afstemning, låsning eller andre moduler.

Konklusion


account.move.line modellen er central for Odoo Accounting. Den gemmer hver debet og kredit i journalposter, fakturaer og regninger. At forstå dens felter og hvordan moduler udvider den vil hjælpe dig med at konfigurere, tilpasse og integrere Odoo effektivt.

Uanset om du er en funktionel konsulent, der kortlægger regnskabsarbejdsgange, eller en udvikler, der bygger brugerdefinerede rapporter og integrationer, vil et solidt kendskab til account.move.line spare tid og forhindre fejl.

Har du brug for hjælp med din Odoo-implementering?


Dasolo hjælper virksomheder med at implementere, tilpasse og optimere Odoo. Vi specialiserer os i API-integrationer og Odoo-udvikling. Vores team har dyb erfaring med Odoo-databasearkitekturen og modeller som account.move.line.


Hvis du har brug for hjælp til din Odoo-implementering, brugerdefinerede moduler eller integrationer, er vi her for at hjælpe. Book en demo for at diskutere dit projekt.

Forstå Odoos Journalpostlinjer: Modellen account.move.line
Dasolo 10. marts 2026
Del dette indlæg
Log ind for at skrive en kommentar