Finance
DATEV-Export prüfen, bevor er rausgeht: was ein Skript vorab abfängt
Die Kanzlei meldet REW04506, und schuld ist das Wirtschaftsjahr im Dateikopf. Welche Fehler im DATEV-Buchungsstapel sich vor dem Versand finden lassen, belegt mit der DATEV-Hilfe.
Am 3. des Monats ruft die Kanzlei an. Der Buchungsstapel vom Oktober lasse sich nicht einlesen, die Stapelverarbeitung melde #REW04506: „Im ausgewählten Verzeichnis wurden keine Daten für den Import gefunden.“ Die Datei liegt im richtigen Ordner. Nach einer halben Stunde Suche stellt sich heraus, dass im Kopf der Datei das Wirtschaftsjahr vom Vorjahr steht, weil jemand die Exportvorlage im Januar nicht angepasst hat.
Solche Fehler lassen sich vor dem Versand finden, mit einem Prüfskript, das jede Exportdatei liest, bevor sie das Haus verlässt. Wir beschreiben hier, was so ein Skript bei einem Buchungsstapel im DATEV-Format prüft, und halten uns dabei an das, was die DATEV-Hilfe selbst dokumentiert. Die genaue Belegung jeder Kopfzeile steht im DATEV Developer Portal; die schreiben wir hier nicht ab.
1. Wie eine EXTF-Datei aufgebaut ist
Das DATEV-Format ist das Standardformat, mit dem Stammdaten und Buchungsstapel in die DATEV-Rechnungswesen-Programme kommen. Die DATEV-Hilfe unterscheidet zwei Dateinamen: DTVF_*.csv, wenn die Daten aus einem DATEV-Programm stammen, und EXTF_*.csv, wenn ein anderes Programm sie erzeugt hat. Exporte aus der Faktura oder dem Lohnprogramm eines anderen Herstellers sind also EXTF-Dateien.
Die erste Zeile ist die Header-Zeile. Sie enthält laut DATEV die Angaben für die Importautomatisierung, etwa Beraternummer, Mandantennummer und Wirtschaftsjahr. Die DATEV-Hilfe nennt diese Angaben Ordnungsbegriffe, und die Stapelverarbeitung zeigt dazu den Zeitraum des Stapels mit „Datum von“ und „Datum bis“ an. In der zweiten Zeile stehen die Spaltenüberschriften, beginnend mit Umsatz (ohne Soll/Haben-Kz). Ab der dritten Zeile folgen die Buchungen.
2. Prüfungen an der Form
Die DATEV-Hilfe listet für die Meldung REW04506 und „Keine Daten vorhanden“ sieben Ursachen auf. Drei davon kann ein Skript vor dem Versand ausschließen, eine vierte klären Sie einmal mit der Kanzlei. Ein ZIP-Archiv vermeiden Sie, indem Sie die Datei unkomprimiert übergeben; ein falscher Datenpfad oder eine Datei, die noch in einem anderen Programm offen ist, liegen auf der Seite der Kanzlei.
| Prüfung | Woran das Skript es erkennt | Was sonst bei der Kanzlei passiert |
|---|---|---|
| Dateiname | beginnt mit EXTF_, endet auf .csv | die Stapelverarbeitung zeigt die Datei nicht an |
| Header vorhanden | das erste Feld der ersten Zeile lautet EXTF | steht dort „Umsatz (ohne Soll/Haben-Kz)“, fehlt der Header, und die Datei wird nicht erkannt |
| Ordnungsbegriffe | Beraternummer, Mandantennummer und Wirtschaftsjahr stimmen mit einer hinterlegten Liste je Mandant überein | „Keine Daten vorhanden“, die Kanzlei muss die Angaben im Stapel von Hand ändern |
| Programmversion | keine Skriptprüfung: einmal mit der Kanzlei klären, für welche Version exportiert wird, und nach jedem Update des Vorsystems nachsehen | ein Export für eine höhere Programmversion lässt sich nicht importieren |
Die dritte Zeile der Tabelle ist die, die uns am häufigsten begegnet ist, meist im Januar. Das Skript bekommt deshalb eine kleine Datei je Mandant mit den drei Angaben, die die Kanzlei erwartet, und vergleicht. Steht im Header ein anderes Wirtschaftsjahr, geht nichts raus.
3. Prüfungen an den Feldern
Für die einzelnen Spalten des Buchungsstapels nennt die DATEV-Hilfe in der Feldbeschreibung für Standardformate Typ, Länge und Muss-Felder. Daraus leitet das Skript Zeile für Zeile diese Prüfungen ab:
- Umsatz ist ein positiver Betrag mit Komma als Dezimaltrennzeichen. Die Richtung steckt im Soll/Haben-Kennzeichen, das nur S oder H sein darf.
- Konto und Gegenkonto sind gefüllt und passen zur Sachkontenlänge des Mandanten. Ein Personenkonto darf nur eine Stelle länger sein als die Sachkontonummer.
- Belegdatum steht im Format TTMM und liegt im Zeitraum des Stapels.
- Belegfeld 1 hat höchstens 36 Zeichen und enthält nur Ziffern, Buchstaben und die Sonderzeichen $ & % * + - /. Leerzeichen, Umlaute, Punkt, Komma, Semikolon und Doppelpunkt sind unzulässig.
- Buchungstext hat höchstens 60 Zeichen.
- Umlaute im Buchungstext kommen im richtigen Zeichensatz an. Die Feldbeschreibung nennt für die Standardformate ANSI.
Beim Belegdatum berücksichtigt DATEV laut Hilfe die Jahreszahl nicht, auch wenn eine vierstellige mitkommt: Liegen Tag und Monat im bebuchbaren Zeitraum, landet die Buchung im aktuellen Wirtschaftsjahr. Eine Rechnung vom 15.10. des Vorjahres rutscht so still in den Oktober des laufenden Jahres. Und das Belegfeld 1 ist der Schlüssel für die Offenen Posten. Ein Zahlungsausgleich funktioniert nur, wenn die Belegnummer der Zahlung mit der der Rechnung übereinstimmt, und eine Rechnungsnummer wie „RE 2026.0815“ mit Leerzeichen und Punkt verletzt gleich zwei Regeln.
4. Prüfungen, die DATEV nicht machen kann
DATEV prüft beim Import die Form, sie weiß aber nicht, was in Ihrem Vorsystem steht. Diese Prüfungen gehören deshalb auf Ihre Seite:
- Die Summe aller Umsätze je Konto stimmt mit dem Journal oder der Auswertung des Vorsystems überein.
- Jedes verwendete Konto steht in der Kontenliste, die die Kanzlei für diesen Mandanten führt.
- Keine Rechnung steht zweimal im Stapel, erkennbar an gleicher Belegnummer, gleichem Betrag und gleichem Konto.
- Der Stapel enthält genau einen Monat und keine Buchung aus dem Vormonat, die schon übermittelt wurde.
- Im Vergleich zum Vormonat fehlen keine Konten, die sonst jeden Monat bebucht werden, und neue Konten sind erklärt.
Angenommen, Sie exportieren monatlich die Lohnbuchungen für 40 Beschäftigte. Dann vergleicht das Skript die Summen der Lohnkonten im Stapel mit den passenden Summen aus dem Lohnjournal desselben Monats. Weicht sie ab, steht im Protokoll die Differenz und die Zeile, in der die Abweichung beginnt. Wie wir die Lohnbuchungen selbst vorbereiten, beschreibt der Beitrag zur Vorarbeit bis DATEV; für Belege und Kreditoren passt der Beitrag zur Buchhaltung bis DATEV.
Das Protokoll unterscheidet zwei Stufen. Ein Fehler hält den Versand an, etwa „Zeile 214, Belegfeld 1: Leerzeichen unzulässig“. Ein Hinweis lässt die Datei durch und landet in der Mail an die Kanzlei, etwa „Konto 4120 im Oktober erstmals bebucht“. So weiß die Buchhalterin dort, was sie sich zuerst ansehen sollte.
5. Warum das vor der Festschreibung passieren muss
Seit Version 5.1 der DATEV-Rechnungswesen-Programme (Januar 2016) hat das DATEV-Format für Buchungsstapel ein Festschreibekennzeichen, wegen der GoBD. Ein Stapel mit dem Kennzeichen „Ja“ ist nach dem Import festgeschrieben. Die Festschreibung lässt sich beim Import nur über ein Ausnahmerecht in der Rechteverwaltung aufheben, und jedes Aufheben wird protokolliert und muss bei einer Betriebsprüfung begründet werden. Stapel ohne Kennzeichen aus älteren Formaten schreibt DATEV automatisch fest, ohne diese Ausnahme.
Ist ein fehlerhafter Stapel einmal festgeschrieben, korrigiert die Kanzlei ihn mit Gegenbuchungen, und der Fehler bleibt in der Buchführung sichtbar. Fragen Sie Ihre Kanzlei, ob sie Ihre Stapel festgeschrieben oder offen haben möchte, und lassen Sie das Skript prüfen, dass das Kennzeichen so gesetzt ist, wie es vereinbart wurde.
6. Ihr erster Schritt
Nehmen Sie die letzte Exportdatei, die an die Kanzlei gegangen ist, und sehen Sie sie in einem Texteditor an. Excel taugt zum Ansehen, aber speichern Sie die Datei dort nicht, denn beim Speichern wird aus einem Belegdatum „0110“ gern eine 110.
- Beginnt der Dateiname mit EXTF_, und steht EXTF im ersten Feld?
- Stimmen Beraternummer, Mandantennummer und Wirtschaftsjahr mit dem, was Ihre Kanzlei verwendet?
- Liegen alle Belegdaten im Zeitraum des Stapels?
- Haben Ihre Rechnungsnummern Zeichen, die im Belegfeld 1 unzulässig sind?
- Wann hat die Kanzlei zuletzt wegen eines Imports angerufen, und woran lag es?
Die letzte Frage stellen Sie am besten direkt der Kanzlei. Die Antwort ist meist die erste Prüfung, die Ihr Skript bekommen sollte. Ist die Buchhaltung bei Ihnen dünn besetzt, übernimmt Financeklar in unserer Gruppe die laufende Buchhaltung. Und wenn die Lohnbuchungen aus Stundenzetteln entstehen, lohnt sich der Blick auf den Schritt davor: Stundenzettel automatisch einsammeln.
Tino Werner schreibt bei Schraubklar den Code. Davor und daneben über zehn Jahre HR und Payroll im eigenen Lohnbüro. Er automatisiert, was sich jeden Monat wiederholt, und lässt stehen, wofür man nachdenken muss. Frage zum Artikel? tino.werner@schraubklar.de
Quellen und weiterführende Stellen
- DATEV-Hilfe Dok.-Nr. 1044208: REW04506 oder „Keine Daten vorhanden“ beim Importieren (datev.de)
- DATEV-Hilfe Dok.-Nr. 1003221: ASCII-Import, Feldbeschreibungen für Standardformate (datev.de)
- DATEV-Hilfe Dok.-Nr. 1080697: Festschreibung beim Import in die DATEV-Rechnungswesen-Programme (datev.de)
- DATEV-Hilfe Dok.-Nr. 9243836: LODAS ASCII-Import (Fenster) (datev.de)