Hoppa till innehåll

account.move.line i Odoo — Förstå raderna i verifikatjournalen

En praktisk handbok för utvecklare och funktionella konsulter: allt du behöver veta om Odoos modell för bokföringsrader (journal entry lines). Här får du en tydlig genomgång av hur rader i verifikatet är uppbyggda, vilka fält som är kritiska, när och varför du måste påverka dem i kod eller via konfiguration — och konkreta tips för att undvika vanliga fallgropar vid anpassningar och integrationer. Vi tar upp relationen mellan verifikatsrader och huvudbok, hantering av debet/kredit, valuta och öppna poster, samt hur automatiska skapelser (skatteberäkning, partner, analytik) samspelar. Guiden innehåller också praktiska exempel på ORM-anrop, migreringar, och hur du testar förändringar utan att förstöra bokföringen. Kort sagt: en handfast referens för dem som ska läsa, skriva eller felsöka Odoo:s journal entry lines i verkliga projekt.
10 mars 2026 av
account.move.line i Odoo — Förstå raderna i verifikatjournalen
Dasolo
| Inga kommentarer ännu

Introduktion


I Odoo bestämmer modeller hur information organiseras i databasen. All affärsdata — från order till faktura och konteringsposter — sparas i modeller och styr vad systemet kan visa, beräkna och validera.


Att förstå modellerna är grundläggande både för utvecklare och för funktionella konsulter. Modellerna formar datamodellen i Odoo: fälttyper, relationer mellan poster och var affärslogiken hör hemma.

Den här texten koncentrerar sig på en central modell i Odoo Accounting: account.move.line. Oavsett om du bygger anpassade rapporter, kopplar externa system eller sätter upp avstämningsrutiner kommer du ofta att jobba mot just denna modell.

Vad är modellen account.move.line


account.move.line beskriver en enskild konteringsrad — en debet- eller kreditpost i en verifikation. Varje rad visar en effekt på ett konto och tillsammans ska raderna i en verifikation balansera så att summan debet = summa kredit.


Modellen används av redovisningsmodulen och är ett barn till account.move, som representerar själva verifikationen (fakturor, leverantörsfakturor, banknoteringar eller manuella verifikationer). En move innehåller alltid en eller flera move.lines.


Själva definitionen ligger i account-modulen, men många andra moduler kompletterar den via arv. Säljmodulen lägger till fakturarelaterade fält, inköp lägger till leverantörsdetaljer och analytik-moduler lägger på fördelningslogik — varje modul kompletterar kärnan utan att duplicera strukturen.

Viktiga fält i modellen


Nedan följer de fält som oftast förekommer och som är viktigast att känna till när du hanterar verifikationer och bokföringsdata i Odoo.


1. name

Typ: Char. Radens beskrivning eller etikett. Visas i verifikationsvyer och rapporter. På fakturarader kommer det ofta från produktnamn eller en fritekstbeskrivning.


2. move_id

Typ: Many2one (account.move). Kopplar raden till sin överordnade verifikation. Varje rad hör till exakt en move — det är modellens huvudrelation.


3. account_id

Typ: Many2one (account.account). Kontot som raden bokförs på. Obligatoriskt. Ska vara ett bokföringskonto (inte ett vykonto eller stängt konto). Används i rapporter och aggregeringar.


4. debit

Typ: Float. Debetbelopp. Standard är 0.0. För en rad sätts normalt antingen debit eller credit, inte båda. Debet ökar tillgångs- och kostnadskonton.


5. credit

Typ: Float. Kreditbelopp. Standard är 0.0. Kredit ökar skulder, eget kapital och intäkter. I en move måste totala debet matcha totala kredit.


6. balance

Typ: Float (beräknat). Debit minus kredit — radens nettopåverkan. Positiv för debet, negativ för kredit. Används i vyer och avstämningar.


7. partner_id

Typ: Many2one (res.partner). Kund, leverantör eller annan motpart. Viktigt för kund-/leverantörsreskontra, förfallolistor och avstämningar.


8. date

Typ: Date. Raden gäller från detta datum — ofta är detverifikationens datum. Påverkar periodisering, rapportering och bokslutstidpunkter.


9. date_maturity

Typ: Date. Förfallodatum för betalning. Används för kund- och leverantörsreskontra samt betalningsplaner och åldersanalyser.


10. currency_id

Typ: Many2one (res.currency). Valutan för posten. Vid flervalutahantering kan denna skilja sig från bolagets basvaluta.


11. amount_currency

Typ: Float. Beloppet i den angivna valutan. Kombinerat med currency_id möjliggör detta flervalutabokföring och omräkning.


12. quantity

Typ: Float. Valfri mängd. Används främst för produktrelaterade rader (fakturor, leverantörsfakturor) för att beräkna enhetspris och rapporter per enhet.


13. product_id

Typ: Many2one (product.product). Produkten kopplad till raden — fylls i när raden kommer från order eller faktura.


14. product_uom_id

Typ: Many2one (uom.uom). Enhetsmåttet för kvantiteten. Behövs för att visa och konvertera antal korrekt.


15. price_unit

Typ: Float. Enhetspris som används tillsammans med kvantiteten för att räkna fram belopp på fakturarader.


16. tax_ids

Typ: Many2many (account.tax). Skatter som appliceras på raden. När verifikationen bokförs kan Odoo skapa separata skattegraderade rader för moms och andra skatter.


17. tax_line_id

Typ: Many2one (account.tax). För rader som representerar skatt; refererar till den skatt som genererat raden och särskiljer skattekonton från vanliga konteringsrader.


18. analytic_account_id

Typ: Many2one (account.analytic.account). Analytiskt konto för kostnads- och intäktsfördelning — används när analytisk bokföring är aktiverad.


19. analytic_distribution

Typ: Json/Text. Fördelningsdefinitioner över flera analytiska konton; i nyare Odoo-versioner kan detta ersätta enkel analytic_account_id när komplexa planer behövs.


20. ref

Typ: Char. Referens eller extern hänvisning, ofta hämtad från verifikationen. Visas i rapporter och hjälper vid matchning vid avstämning.


21. narration

Typ: Text. Intern anteckning på verifikationen. Syns internt och skrivs normalt inte ut på kunddokument.


22. journal_id

Typ: Many2one (account.journal). Verifikationens journal — viktigt för filtrering, nummerserier och rapporter per journal.


23. company_id

Typ: Many2one (res.company). Bolaget. I koncerner med flera bolag tillhör varje rad ett specifikt bolag och påverkar synlighet och koncernredovisning.


24. reconciled

Typ: Boolean. Visar om raden är helt avstämningsbar. Används för att filtrera öppna fordringar och skulder i avstämningsvyer.


25. full_reconcile_id

Typ: Many2one (account.full.reconcile). Kopplar ihop alla rader som blivit avstämda tillsammans — gör det möjligt att spåra hela avstämningsgruppen.


26. payment_id

Typ: Many2one (account.payment). För betalningsrader; länkar till betalningsposten som matchar fakturan vid avstämning.


27. statement_id

Typ: Many2one (account.bank.statement). För banktransaktionsrader; länkar raden till en specifik banknotering vid kontoutdragavstämning.


28. statement_line_id

Typ: Many2one (account.bank.statement.line). Länkar till en specifik rad i bankutdraget — central vid bankavstämning och automatisk matchning.


29. display_type

Typ: Selection. Används för presentation (t.ex. sektioner eller notiser i verifikationen). Dessa rader har normalt ingen debet eller kredit och är endast visuella.


30. create_date

Typ: Datetime. Tidpunkt då posten skapades. Hanteras automatiskt och är värdefull för revision och historik.


31. write_date

Typ: Datetime. Senaste ändringstidpunkt. Hjälper till att spåra förändringar över tid och felsökning.

Hur modellen används i affärsprocesser


1. Kundfakturering

När en kundfaktura bekräftas skapar Odoo move.lines: intäktsrader till intäktskonton, fordringsrader till kundfordringskontot och separata skatetransaktioner. partner_id kopplar raden till kunden för åldersanalyser och betalningshantering.


2. Leverantörsfakturor

Leverantörsfakturor skapar rader för kostnader, ingående moms och leverantörsskulder. Strukturen liknar kundfakturor men kontotyperna speglar kostnadssidan och skulder.


3. Bankavstämning

Bankutdragsrader matchas mot move.lines via statement_line_id. Vid avstämning länkar Odoo raderna och sätter reconciled-flaggan, ofta med ett full_reconcile-id för att spåra hela matchningen.


4. Manuella verifikationer

Användare kan skapa manuella verifikationer med flera rader; varje rad har konto, debet/kredit och valfri partner. Odoo kräver att verifikationen är balanserad innan den kan bokföras.



5. Analytisk och kostnadsrapportering

När analytisk bokföring används bär raderna analytiska referenser eller fördelningar. Rapporter kan grupperas per analytiskt konto för att visa kostnader och intäkter per projekt, avdelning eller annan dimension.

Hur utvecklare bygger ut modellen


Utvecklare bygger på account.move.line med olika tekniker, där Odoos modellärv är den vanligaste metoden.


Modellarv

Använd _inherit = 'account.move.line' för att utöka modellen. Du kan lägga till fält, skriva över metoder och införa valideringar. Genom att paketera ändringar i en separat modul blir uppgraderingar smidigare.


Lägga till fält

Definiera nya fält i din ärvda modell med lämplig typ (Char, Many2one, Boolean etc.). Tänk på företagsberoende fält i multiselskapsmiljöer och var försiktig med beräknade fält — ange alltid korrekta beroenden.


Python‑förlängningar

Skriv över create, write eller unlink för att lägga på logik, men kalla alltid super() så kärnflöden inte bryts. Var särskilt försiktig så du inte bryter balansen mellan debet och kredit eller ödelägger avstämningslogik.


Odoo Studio

Odoo Studio är ett snabbt sätt att lägga till fält utan kod — bra för enkla tillägg som etiketter eller taggar. För komplexa regler och avstämningar rekommenderas en modulbaserad lösning för bättre underhåll och testbarhet.

Bästa praxis


  • Skapa eller ändra aldrig move.lines direkt utan att gå via dess parent move. Använd move-API:et (t.ex. line_ids) så att Odoo kan köra alla nödvändiga kontroller och uppdatera balanser korrekt.
  • Vid rapportering — filtrera på move_id.state = 'posted' för att utesluta utkast och annullerade verifikationer.
  • Använd account_id med rätt kontotyp (fordran, skuld etc.) för att säkerställa korrekt beteende i ålderslistor och avstämningsverktyg.
  • Vid integration via API: skapa först verifikationen (move), lägg sedan till raderna och säkerställ att debet och kredit balanserar innan du bokför.
  • För egna fält: använd x_‑prefix eller ett modulnamn som prefix för att undvika namnkonflikter vid framtida Odoo‑uppgraderingar.

Vanliga misstag


  • Att sätta både debit och credit på samma rad. En rad ska normalt ha antingen debit eller credit — inte båda.
  • Att skapa obalanserade verifikationer. Summan av debet måste alltid matcha summan av kredit — Odoo validerar detta vid bokföring.
  • Att ändra redan bokförda rader direkt i stället för att använda reverseringar eller korrigeringsverifikationer. Bokförda poster justeras genom nya verifikationer, inte genom direkta ändringar.
  • Att glömma partner_id på fordrings- eller skuldrader. Det bryter rapporter för åldersanalys och försvårar avstämning.
  • Att åsidosätta kärnmetoder utan att kalla super(). Det kan skada avstämningar, låsning och samverkan med andra moduler.

Sammanfattning


account.move.line är navet i Odoo Accounting — den fångar varje debet och kredit i verifikationer, fakturor och leverantörsfakturor. Kännedom om modellens fält och hur den kan utökas gör det enklare att konfigurera, anpassa och integrera systemet.

Oavsett om du kartlägger processer som funktionell konsult eller bygger integrationer och rapporter som utvecklare, sparar tiden du lägger på att förstå account.move.line både arbete och misstag i längden.

Behöver du hjälp med din Odoo-implementering?


Dasolo hjälper företag med implementation, anpassning och optimering av Odoo. Vi specialiserar oss på API‑integrationer och utveckling, med djup kunskap om Odoos datamodell och centrala modeller som account.move.line.


Behöver du hjälp med anpassningar, integrationer eller din Odoo‑installation — hör av dig så kan vi diskutera lösningar och nästa steg. Boka en demo för att prata om ditt projekt.

account.move.line i Odoo — Förstå raderna i verifikatjournalen
Dasolo 10 mars 2026
Dela detta inlägg
Logga in att lämna en kommentar