Hoppa till innehåll

Förstå Odoos Journalpostlinjer: Modellen account.move.line

En komplett guide till Odoos journalpostlinjemodell för utvecklare och funktionella konsulter
10 mars 2026 av
Förstå Odoos Journalpostlinjer: Modellen account.move.line
Dasolo
| Inga kommentarer ännu

Introduktion


I Odoo definierar modeller hur data struktureras och lagras i databasen. Varje del av affärsdata du arbetar med, från försäljningsorder till fakturor till journalposter, finns i en modell.


Att förstå Odoo-modeller är avgörande för både utvecklare och funktionella konsulter. Modeller är grunden för Odoos dataarkitektur. De definierar Odoo-fält, relationer och affärslogik.

Denna artikel fokuserar på en av de viktigaste modellerna i Odoo Accounting: account.move.line. Oavsett om du bygger anpassade rapporter, integrerar externa system eller konfigurerar avstämningsarbetsflöden, kommer du att arbeta med denna modell.

Vad är account.move.line-modellen


Modellen account.move.line representerar individuella journalpostlinjer i Odoo. Varje linje är en debet eller kredit i en journalpost. Tillsammans måste linjerna i en journalpost balansera: totala debiteringar måste vara lika med totala krediteringar.


Denna modell i Odoo används av redovisningsmodulen. Den är barnet till account.move, som representerar själva journalposten (fakturor, räkningar, bankutdrag, journalposter). Varje journalpost har en eller flera linjer.


Modellen definieras i account-modulen. Andra moduler utökar den genom Odoo-modelarv. Försäljning lägger till fakturalinjedetaljer. Inköp lägger till räkninglinjedetaljer. Kontoanalytik lägger till analytisk fördelning. Varje modul lägger till vad den behöver utan att duplicera den grundläggande strukturen.

Nyckelfält i modellen


Här är de viktigaste Odoo-fälten i modellen account.move.line. Att förstå dessa kommer att hjälpa dig att arbeta effektivt med journalposter och redovisningsdata.


1. namn

Typ: Char. Detta fält lagrar etiketten eller beskrivningen av linjen. Det är obligatoriskt och visas vanligtvis i vyer och rapporter för journalposter. För fakturalinjer kommer det ofta från produktnamnet eller en anpassad beskrivning.


2. move_id

Typ: Many2one (account.move). Länkar linjen till dess överordnade journalpost. Varje linje tillhör exakt en move. Detta är den huvudsakliga relationen i modellen.


3. account_id

Typ: Many2one (account.account). Kontot som denna linje bokförs på. Obligatoriskt. Måste vara ett icke-vy, icke-stängt konto. Används för rapportering och gruppering av kontoplaner.


4. debet

Typ: Float. Debetbeloppet. Standard är 0,0. För varje linje sätts antingen debet eller kredit, inte båda. Debet ökar tillgångs- och kostnadskonton.


5. kredit

Typ: Float. Kreditbeloppet. Standard är 0.0. Krediter ökar skulder, eget kapital och intäktskonton. Summan av alla debiteringar måste vara lika med summan av alla krediter i en transaktion.


6. balans

Typ: Float. Ett beräknat fält: debet minus kredit. Representerar den nettoeffekt som raden har. Positivt för debiteringar, negativt för krediter. Används i rapporter och avstämningar.


7. partner_id

Typ: Many2one (res.partner). Kunden, leverantören eller annan part kopplad till denna rad. Används för spårning av fordringar och skulder, åldersrapporter och avstämningar.


8. datum

Typ: Datum. Det effektiva datumet för raden. Vanligtvis ärvt från den överordnade transaktionen. Används för periodavslut, rapportering och åldring.


9. förfallodatum

Typ: Datum. Förfallodagen för betalning. Relevant för fordringar och skulder. Används för åldersrapporter och betalningsplanering.


10. valuta_id

Typ: Many2one (res.currency). Valutan för raden. Kan skilja sig från företagsvalutan för transaktioner med flera valutor.


11. amount_currency

Typ: Float. Beloppet i linjens valuta. Används när journalposten är i en utländsk valuta. Tillsammans med currency_id möjliggör det flervaluta redovisning.


12. quantity

Typ: Float. Valfritt antal. Används för produktbaserade rader (fakturor, fakturor). Möjliggör kvantitetsbaserad rapportering och beräkningar av enhetspriser.


13. product_id

Typ: Many2one (product.product). Produkten kopplad till denna rad. Fylls i när raden kommer från en försäljningsorder, inköpsorder eller fakturarad.


14. product_uom_id

Typ: Many2one (uom.uom). Enheten för mängden. Används med product_id för korrekt visning och konvertering av mängd.


15. price_unit

Typ: Float. Enhetspriset. Används med mängd för att beräkna belopp på faktura- och fakturarader.


16. tax_ids

Typ: Many2many (account.tax). Skatter som tillämpas på denna rad. Odoo skapar ytterligare rader för skattebelopp vid bokföring. Används för moms- och andra skatteberäkningar.


17. tax_line_id

Typ: Many2one (account.tax). För skatteposter refererar detta till skatten som genererade posten. Åtskiljer skatteposter från vanliga konto-poster.


18. analytic_account_id

Typ: Many2one (account.analytic.account). Den analytiska kontot för kostnads- och intäktsuppföljning. Används när analytisk redovisning är aktiverad.


19. analytic_distribution

Typ: Json eller Text. Lagrar analytisk fördelning över flera analytiska konton. Ersätter analytic_account_id i nyare Odoo-versioner när analytiska planer används.


20. ref

Typ: Char. Vanligtvis relaterad från den överordnade transaktionen. Extern referens eller anteckning. Visas på rapporter och används för avstämning.


21. narration

Typ: Text. Vanligtvis relaterad från den överordnade transaktionen. Intern anteckning eller memo. Trycks inte på kundinriktade dokument som standard.


22. journal_id

Typ: Many2one (account.journal). Journalen för den överordnade transaktionen. Används för filtrering och rapportering efter journal.


23. company_id

Typ: Many2one (res.company). Företaget. I flerföretagsinställningar tillhör varje rad ett företag. Påverkar synlighet och konsolidering av poster.


24. reconciled

Typ: Boolean. Indikerar om raden har blivit helt avstämmd. Används för att filtrera obekräftade objekt i avstämningsvyer.


25. full_reconcile_id

Typ: Many2one (account.full.reconcile). Länkar alla rader som har avstämts tillsammans. Möjliggör spårning av avstämningsgrupper.


26. payment_id

Typ: Many2one (account.payment). För betalningsrader, länkar till betalningsposten. Används vid avstämning av fakturor med betalningar.


27. statement_id

Typ: Many2one (account.bank.statement). För bankuttagsrader, länkar till uttaget. Används i bankavstämning.


28. statement_line_id

Typ: Many2one (account.bank.statement.line). Länkar till den specifika bankuttagsraden. Används vid matchning av rörelser till banktransaktioner.


29. display_type

Typ: Val. Kan vara 'line_section' eller 'line_note' för avsnittsrubriker och anteckningar i journalposten. Dessa rader har ingen debet eller kredit och är endast för visning.


30. create_date

Typ: Datum och tid. Lagrar när posten skapades. Hanteras automatiskt av Odoo. Användbart för revision.


31. write_date

Typ: Datum och tid. Lagrar när posten senast ändrades. Hanteras automatiskt. Hjälper till att spåra förändringar över tid.

Hur denna modell används i affärsarbetsflöden


1. Kundfakturering

När du bekräftar en faktura skapar Odoo account.move.line-poster. Intäktsrader går till inkomstkonton. Kundfordringsrader går till kundfordringskontot. Skatterader skapas för varje skatt. partner_id länkar till kunden för åldersanalys och avstämning.


2. Leverantörsfakturor

Fakturor skapar rader för kostnader, ingående moms och skulder. Varje rad har ett account_id, debet eller kredit, och partner_id. Strukturen speglar kundfakturor men med olika kontotyper.


3. Bankavstämning

Bankkontots rader matchas med move-rader via statement_line_id. När du avstämmer länkar Odoo raderna genom full_reconcile_id. Det avstämda fältet sätts till True.


4. Manuella bokföringsposter

Användare skapar bokföringsposter med flera rader. Varje rad har ett konto, debet eller kredit, och en valfri partner. Odoo säkerställer att debet är lika med kredit innan bokföringen görs.



5. Analytisk och kostnadsrapportering

När analytisk bokföring är aktiverad, bär raderna analytic_account_id eller analytic_distribution. Rapporter grupperar efter analytiskt konto för att visa kostnader och intäkter per projekt, avdelning eller annan dimension.

Hur utvecklare utökar denna modell


Utvecklare utökar account.move.line med flera mönster. Odoo-modellarv är den huvudsakliga mekanismen.


Modellarv

Använd _inherit = 'account.move.line' för att utöka modellen. Lägg till nya Odoo-fält, åsidosätt metoder eller lägg till begränsningar. Den ärvda modellen i Odoo håller dina ändringar i en separat modul för enkla uppgraderingar.


Lägga till fält

Definiera nya Odoo-fält i din ärvda modell. Använd rätt fälttyp: Char, Many2one, Boolean, Integer, Text, Selection. Tänk på företagsberoende fält för flera företag. Var försiktig med beräknade fält och deras beroenden.


Python-tillägg

Åsidosätt create, write eller unlink för att lägga till logik. Använd super() för att anropa den ursprungliga. Undvik att bryta debet-lika-kredit-invarianten. API-modellen i Odoo exponerar dessa metoder för externa integrationer.


Odoo Studio

Odoo Studio låter dig lägga till fält till account.move.line utan kod. Bra för snabba anpassningar som extra etiketter eller taggar. För komplex logik eller avstämningsregler är anpassade moduler mer underhållbara.

Bästa praxis


  • Skapa eller ändra aldrig move lines direkt utan att gå igenom flytten. Använd flyttens API (t.ex. line_ids) så att Odoo kan upprätthålla konsekvens och köra alla kontroller.
  • När du bygger rapporter, filtrera efter move_id.state = 'posted' för att utesluta utkast och avbrutna poster.
  • Använd account_id med rätt kontotyp (fordringar, skulder, etc.) för korrekt åldring och avstämningsbeteende.
  • När du integrerar via API, skapa flytten först, lägg sedan till rader. Se till att debiteringar är lika med krediteringar innan du postar.
  • För anpassade fält, använd x_ prefix eller ett modulprefix för att undvika konflikter med framtida Odoo-versioner.

Vanliga misstag


  • Att ställa in både debet och kredit på samma rad. Varje rad bör ha antingen debet eller kredit, inte båda.
  • Skapa obalanserade flyttar. Summan av debiteringar måste vara lika med summan av krediteringar. Odoo validerar detta vid postning.
  • Att ändra postade rader utan att använda rätt återställnings- eller justeringsarbetsflöde. Postade poster bör justeras via nya flyttar, inte direkta redigeringar.
  • Att glömma att ställa in partner_id på fordrings- och skuldrader. Detta bryter åldersrapporter och avstämning.
  • Att åsidosätta kärnmetoder utan att kalla super(). Detta kan bryta avstämning, låsning eller andra moduler.

Slutsats


account.move.line-modellen är central för Odoo Accounting. Den lagrar varje debet och kredit i journalposter, fakturor och räkningar. Att förstå dess fält och hur moduler utökar den kommer att hjälpa dig att konfigurera, anpassa och integrera Odoo effektivt.

Oavsett om du är en funktionell konsult som kartlägger redovisningsarbetsflöden eller en utvecklare som bygger anpassade rapporter och integrationer, kommer en solid förståelse för account.move.line att spara tid och förhindra fel.

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


Dasolo hjälper företag att implementera, anpassa och optimera Odoo. Vi specialiserar oss på API-integrationer och Odoo-utveckling. Vårt team har djup erfarenhet av Odoo:s dataarkitektur och modeller som account.move.line.


Om du behöver hjälp med din Odoo-implementation, anpassade moduler eller integrationer, är vi här för att hjälpa till. Boka en demo för att diskutera ditt projekt.

Förstå Odoos Journalpostlinjer: Modellen account.move.line
Dasolo 10 mars 2026
Dela detta inlägg
Logga in att lämna en kommentar