Lagerbuchungen in Odoo: Welche Konten Bewegungen bewegen
Kurz gesagt
Wareneingang und Kundenlieferung erzeugen in Odoo 20 keine eigene Buchung: Die App Lager bewertet den Bestand sofort, die App Buchhaltung zieht mit der Lieferanten- oder Kundenrechnung (Fortlaufend, Perpetual) oder erst in der Schlussbuchung (Periodisch, Periodic) nach. Sofort bucht Odoo Ausschuss, Bestandsaufnahme und Fertigung nur, wenn angelsächsische Rechnungslegung, die Methode Fortlaufend und ein Konto am Ausschuss- oder Produktionslagerort zusammenkommen; die Vorgabekonten für Deutschland, Österreich und die Schweiz stehen im öffentlichen Quellcode der Community-Lokalisierungen (Zweig 20.0), und die Dokumentation nennt das Variationskonto ein lokalisierungsspezifisches Konto der kontinentalen periodischen Einrichtung. Die Schlussbuchung gleicht das Bestandskonto an den Lagerwert an und gliedert in der kontinentalen fortlaufenden Einrichtung den Bestandszuwachs der Periode zwischen Aufwandskonto und Variationskonto um.
Das Wichtigste
- Die App Lager bewertet jede erledigte Bewegung sofort, unabhängig davon, ob dazu eine Buchung existiert.
- In der kontinentalen Rechnungslegung erzeugen Wareneingang und Lieferung in Odoo 20 selbst keine Buchung; der Lagerwert ändert sich trotzdem.
- Periodisch bucht die Lieferantenrechnung als Aufwand, Fortlaufend als Bestand.
- Seit Odoo 19 bucht Fortlaufend auf der Ebene der Rechnung; bis Odoo 18 entstand je Bewegung eine Buchung.
- Die Schlussbuchung aus Prüfung ‣ Bestandsbewertung gleicht das Bestandskonto an den Lagerwert an; in der kontinentalen fortlaufenden Einrichtung gliedert sie zusätzlich den Bestandszuwachs der Periode zwischen Aufwandskonto und Variationskonto um.
- Die App Lager steht laut Editionsseite in Community und Enterprise, die App Buchhaltung nur in der Spalte Enterprise; die Vorgabekonten der Lokalisierungen für Deutschland, Österreich und die Schweiz stehen im öffentlichen Quellcode der Community-Lokalisierungen (Zweig 20.0).
Wareneingang und Kundenlieferung ändern in Odoo 20 sofort Menge und Wert im Lager, aber kein Konto. Die Buchhaltung folgt später: mit der Lieferanten- oder Kundenrechnung oder erst in der Schlussbuchung. Welche Konten dabei bewegt werden, hängt an den Einstellungen für Rechnungslegung und Bewertungszeitpunkt; für Ausschuss und Fertigung kommt ein Konto am Lagerort hinzu.
Wann eine Buchung entsteht
Der Bewertungszeitpunkt steht in der App Buchhaltung unter Buchhaltung ‣ Konfiguration ‣ Einstellungen im Abschnitt Bestandsbewertung (Inventory Valuation). Periodisch (Periodic (at closing)) bucht erst im Abschluss, Fortlaufend (Perpetual (at invoicing)) mit der Rechnung. Die App Lager bewertet dagegen laufend und unabhängig davon, ob zu einer Bewegung schon eine Buchung existiert; die Differenz zwischen Lagerwert und Buchwert zeigt die App Buchhaltung als Bestandsabweichung (Stock Variation).
Davon getrennt steht die Rechnungslegung. Odoo beschreibt zwei Praktiken: In der kontinentalen Rechnungslegung wird der Wareneinsatz mit der Lieferantenrechnung Aufwand, in der angelsächsischen Buchhaltung erst mit der Kundenrechnung als Wareneinsatz erfasst. Für die kontinentale Rechnungslegung ist keine Umstellung nötig: Die Community-Lokalisierungen für Deutschland, Österreich und die Schweiz legen ein Bestandskonto an (Vorgabe aus dem öffentlichen Quellcode, Zweig 20.0), und das Feld für angelsächsische Buchhaltung ist im Modul account ohne Vorgabewert angelegt.
Bis Odoo 18 buchte die fortlaufende Methode jede Lagerbewegung. Seit Odoo 19 wirkt sie laut Dokumentation auf der Ebene der Rechnung, und die Schlussbuchung gleicht den Rest aus; die früheren Zwischenkonten für Wareneingang und Warenausgang verwendet Odoo seitdem nicht mehr. In der kontinentalen fortlaufenden Einrichtung tut diese Schlussbuchung mehr als ausgleichen: Sie gliedert den Bestandszuwachs der Periode zwischen dem Aufwandskonto und dem Variationskonto um.
Welche Buchung welche Bewegung auslöst
Die folgende Tabelle zeigt für die kontinentale Rechnungslegung, welche Buchung ein Vorgang auslöst. Konten sind als Rolle genannt, weil der Kontenrahmen die Nummern bestimmt. Die Steuerzeilen von Rechnungen und Gutschriften bleiben außen vor; sie richten sich nach den am Produkt hinterlegten Steuern und haben mit der Bewegung nichts zu tun.
| Bewegung | Periodisch (bei Abschluss) | Fortlaufend (bei Rechnungsstellung) |
|---|---|---|
| Wareneingang aus einer Bestellung | keine Buchung | keine Buchung |
| Lieferantenrechnung | Soll Aufwandskonto Wareneingang, Haben Verbindlichkeiten | Soll Bestandskonto, Haben Verbindlichkeiten |
| Umlagerung zwischen zwei internen Lagerorten | keine Buchung, keine Wertänderung | keine Buchung, keine Wertänderung |
| Lieferung an den Kunden | keine Buchung | keine Buchung |
| Kundenrechnung | Soll Forderungen, Haben Erlöse | Soll Forderungen, Haben Erlöse; zusätzlich Soll Aufwandskonto Wareneinsatz, Haben Bestandskonto |
| Fertigungsauftrag | keine Buchung; mit Konto am Produktionslagerort eigene Zeile in der Schlussbuchung | in der kontinentalen Einrichtung keine Buchung; sofort bucht nur die angelsächsische, fortlaufende Einrichtung mit Konto am Lagerort |
| Ausschuss und Bestandsaufnahme | keine Buchung; mit Konto am Lagerort Bestandsschwund eigene Zeile in der Schlussbuchung | in der kontinentalen Einrichtung keine Buchung; sofort bucht nur die angelsächsische, fortlaufende Einrichtung mit Konto am Lagerort |
| Schlussbuchung Bestandsbewertung | Soll oder Haben Bestandskonto gegen Variationskonto | Soll oder Haben Bestandskonto gegen Aufwandskonto, wenn Buchwert und Lagerwert auseinanderliegen; zusätzlich Soll oder Haben Aufwandskonto gegen Variationskonto für den Bestandszuwachs der Periode |
Der Blickfang der Tabelle sind die leeren Zellen: Weder der Wareneingang aus einer Bestellung noch die Lieferung an den Kunden berühren ein Konto. Die Zeilen zu Fertigung, Ausschuss und Bestandsaufnahme bleiben in der kontinentalen Rechnungslegung leer, solange kein Konto am betreffenden Lagerort hängt; mit Konto erscheinen sie getrennt in der Schlussbuchung. Sofort, also bei der Bewegung selbst, bucht Odoo nur in der angelsächsischen, fortlaufenden Einrichtung mit einem Konto am Lagerort (nächster Abschnitt).
Wann Odoo doch je Bewegung bucht
Eine Buchung unmittelbar bei der Bewegung entsteht nur, wenn drei Bedingungen zusammenkommen: angelsächsische Rechnungslegung, die Methode Fortlaufend (Perpetual) und ein Konto am betreffenden Lagerort. Für Ausschuss und Bestandsaufnahme ist das der Lagerort Bestandsschwund (Inventory Loss): Ist dort ein Konto gesetzt, bucht Odoo den Wert laut Dokumentation sofort in Echtzeit, sobald die Bewegung abgeschlossen ist. Beim Fertigungsauftrag ist es der Lagerort Produktion mit dem Konto Produktionskosten (Cost of Production): Dann sind Bestandskonto und Produktionskostenkonto die Gegenkonten, sobald der Auftrag validiert wird. Der Wert des Fertigprodukts besteht aus den bewerteten Komponenten plus den Kosten der Arbeitsgänge.
In der kontinentalen Rechnungslegung bleiben Ausschuss, Fertigung und Bestandsaufnahme in der Schlussbuchung; der Bericht weist den Schwund dort getrennt aus, wenn am Lagerort ein Konto hinterlegt ist.
Beispielrechnung: Wareneingang, Lieferung, Abschluss
Beispielrechnung mit erfundenen Beträgen, netto und ohne Steuern, aus einem Geschäftsjahr ohne Anfangsbestand. Ein Händler kauft 100 Stück zu 5,00 € ein und verkauft 60 Stück zum Nettoverkaufspreis von 900,00 €.
| Schritt | Periodisch (bei Abschluss) | Fortlaufend (bei Rechnungsstellung) |
|---|---|---|
| Wareneingang 100 Stück | keine Buchung | keine Buchung |
| Lieferantenrechnung 500,00 € | Soll Wareneingang 500,00 €, Haben Verbindlichkeiten 500,00 € | Soll Bestand 500,00 €, Haben Verbindlichkeiten 500,00 € |
| Lieferung 60 Stück | keine Buchung | keine Buchung |
| Kundenrechnung 900,00 € | Soll Forderungen 900,00 €, Haben Erlöse 900,00 € | zusätzlich Soll Wareneinsatz 300,00 €, Haben Bestand 300,00 € |
| Schlussbuchung bei 40 Stück Bestand | Soll Bestand 200,00 €, Haben Bestandsveränderung 200,00 € | Soll Wareneinsatz 200,00 €, Haben Bestandsveränderung 200,00 € (Umgliederung; das Bestandskonto bleibt bei 200,00 €) |
Bei Periodisch stehen die 500,00 € als Aufwand, und dem Aufwand steht kein Bestand gegenüber; die Schlussbuchung holt den Endbestand von 200,00 € (40 × 5,00 €) als Aktivum herein und stellt ihm 200,00 € Bestandsveränderung gegenüber. Als Wareneinsatz bleiben 500,00 € − 200,00 € = 300,00 €, der Wert der verkauften 60 Stück.
Bei Fortlaufend hat die Lieferantenrechnung den Bestand auf 500,00 € gestellt, und die Kundenrechnung hat 300,00 € Wareneinsatz gegen den Bestand gebucht. Das Bestandskonto steht damit wie der Lagerwert bei 200,00 €, und die Schlussbuchung ändert es nicht. Sie gliedert aber die 200,00 € Bestandszuwachs um: Soll Wareneinsatz 200,00 €, Haben Bestandsveränderung 200,00 €. Danach stehen dem Aufwand von 500,00 € für den Einkauf 200,00 € Bestandsveränderung gegenüber, sodass als Wareneinsatz der Periode 300,00 € bleiben, der Wert der verkauften 60 Stück — dieselbe Zahl wie bei Periodisch. Erfassen Sie zusätzlich Ausschuss oder eine Inventurdifferenz, weicht der Lagerwert vom Bestandskonto ab, und die Schlussbuchung gleicht den Unterschied über das Aufwandskonto aus.
Vorgabekonten der Community-Lokalisierungen
Das Variationskonto hängt am Bestandskonto; in der fortlaufenden kontinentalen Einrichtung hängt dort zusätzlich das Aufwandskonto für den Wareneinsatz. Beide sind die Gegenkonten der Schlussbuchung. Die Dokumentation 20.0 beschreibt diese Rolle, nennt aber keine Kontonummern; die folgende Tabelle gibt deshalb die Vorgabekonten aus dem öffentlichen Quellcode der Community-Lokalisierungen im Zweig 20.0 wieder. Prüfen Sie die Werte in Ihrer Datenbank.
| Lokalisierung | Bestandskonto | Aufwandskonto (Wareneinsatz) | Variationskonto |
|---|---|---|---|
| Deutschland SKR03 | 7200 Waren (Inventar) | 3000 Roh-, Hilfs- und Betriebsstoffe | 3955 Bestandsveränderungen Roh-, Hilfs- und Betriebsstoffe |
| Deutschland SKR04 | 1000 Roh-, Hilfs- und Betriebsstoffe | 5000 Aufwendungen für Roh-, Hilfs- und Betriebsstoffe und für bezogene Waren | 5880 Bestandsveränderungen Roh-, Hilfs- und Betriebsstoffe sowie bezogene Waren |
| Österreich | 1600 Handelswaren | 5010 Wareneinkauf 20 % (Bezeichnung des Kontenrahmens, keine Aussage zum Umsatzsteuersatz) | 5880 Bestandsveränderung - Rohstoffe |
| Schweiz | 1210 Rohstoffe | 4000 Materialaufwand Produktion | 4801 Änderung der Rohstoffvorräte |
Läuft die Datenbank mit einem anderen Kontenplan, sind die Nummern andere, die Rollen bleiben gleich.
Typische Fehler
- Buchung je Wareneingang erwarten: Bis Odoo 18 war das so; seit Odoo 19 kommt der Zugang mit der Lieferantenrechnung oder im Abschluss.
- Sofortbuchung beim Ausschuss erwarten, obwohl ein Konto am Lagerort, die Methode Fortlaufend oder die angelsächsische Rechnungslegung fehlt: Der Schwund bleibt dann in der Schlussbuchung.
- Steuerzeilen in der Bewegungstabelle suchen: Steuerzeilen stammen aus der Rechnung oder Gutschrift und folgen der am Produkt hinterlegten Steuer; mit der Lagerbewegung haben sie nichts zu tun.
- Die Schlussbuchung für optional halten: In der periodischen Einrichtung entsteht der Buchwert des Bestands erst mit ihr, und in der fortlaufenden kontinentalen Einrichtung gliedert sie den Bestandszuwachs zwischen Aufwandskonto und Variationskonto um.
So gehen Sie vor
- Prüfen Sie unter Buchhaltung ‣ Konfiguration ‣ Einstellungen im Abschnitt Bestandsbewertung, ob Periodisch oder Fortlaufend eingestellt ist.
- Prüfen Sie am Bestandskonto das Aufwandskonto und das Variationskonto; die Community-Lokalisierungen für DE, AT und CH füllen beide vor (Vorgaben aus dem öffentlichen Quellcode, Zweig 20.0).
- Legen Sie fest, ob Ausschuss und Fertigung sofort gebucht werden sollen; dafür braucht es angelsächsische Rechnungslegung, die Methode Fortlaufend und ein Konto am betreffenden Lagerort.
- Buchen Sie Wareneingang, Lieferantenrechnung und Lieferung in einer Testdatenbank und vergleichen Sie unter Buchhaltung ‣ Prüfung ‣ Bestandsbewertung Anfangswert, Bestandsabweichung und Endbestand.
- Gleichen Sie zum Periodenende Prüfung ‣ Bestandsbewertung und den Bericht Lager ‣ Berichtswesen ‣ Bestand ab und erzeugen Sie die Schlussbuchung; in der fortlaufenden kontinentalen Einrichtung gehört die Umgliederung zwischen Aufwandskonto und Variationskonto dazu. Wie Odoo den Bestand bewertet, steht unter Lagerbewertung in Odoo; die Wahl zwischen den Rechnungslegungen behandelt Kontinental oder angelsächsisch buchen, die Zählung Inventur in Odoo.