Postversanddateien erstellen

Der eine oder andere Unternehmer mag ein eigenes Kassenbuch führen, um Ein- und Ausgaben immer im Blick zu behalten. Da wäre es doch praktisch, wenn man die anfallenden Buchungen gleich in einer Form aufbereiten könnte, in der sie der Steuerberater gleich weiterverarbeiten kann. Der vorliegende Beitrag zeigt, wie dies funktioniert.

Von der Buchung zum Steuerberater

Die meisten Steuerberater verwenden Produkte der Firma DATEV, um die Buchführung von Unternehmen zu erstellen. Die Buchführung enthält die Buchungsvorgänge eines Jahres, die entweder in Form prall gefüllter Aktenordner zum Steuerberater gelangen, der diese dann bucht, oder in einem entsprechenden digitalen Format.

Das setzt voraus, dass der Unternehmer die Rechnungen selbst eingegeben und eine entsprechende Datei erstellt hat. Die Daten können in Form des OBE-Formats oder des KNE/DFE-Formats an die sogenannte Postversandschnittstelle übergeben werden. Beide verwenden zwei oder mehrere ASCII-Dateien zur Übertragung der Daten. Im Rahmen des vorliegenden Beitrags haben wir die Dateien des OBE-Formats analysiert und eine Lösung erstellt, mit der Sie aus den Buchungen aus einer Tabelle der Datenbank und einigen weiteren Informationen die benötigten Dateien DV01 und DE001, DE002 und so weiter erstellen können.

Die Datei DV01 ist die Verwaltungsdatei, die erstens einige grundlegende Informationen enthält und zweitens Verwaltungsinformationen zu den DE…-Dateien mit den eigentlichen Buchungssätzen.

Die Datendateien (DE001, DE002…) enthalten sogenannte Vorlaufdaten und die eigentlichen Buchungsdaten. Schließlich folgt noch die Summe der Umsätze.

Die Lösung dieses Beitrags verwendet nur eine DE…-Datei, die bis zu 9.999 Datensätze fassen kann.

Aufbau der Verwaltungsdatei DV01

Die Verwaltungsdatei enthält allgemeine Informationen und wird nur einmal je Satz erstellt – im Gegensatz zur Datendatei, die je nach Datenmenge auf mehrere Dateien aufgeteilt werden kann. Die Datei sieht in hexadezimaler Darstellung beispielsweise wie in Bild 1 aus.

pic001.png

Bild 1: Beispiel für den Aufbau der Datei DV01

Die Verwaltungsdatei wird wie folgt aufgebaut:

  • Datenträgernummer: dreistellige Nummer mit drei folgenden Leerzeichen, zum Beispiel A01
  • Beraternummer: siebenstellige Nummer, gegebenenfalls mit führenden Nullen
  • Beratername: neun Zeichen
  • Leerzeichen
  • Anzahl Datendateien: zwei Zeichen, gegebenenfalls durch folgende Nullen aufgefüllt (können bei nur einer Datei offensichtlich durch zwei Leerzeichen ersetzt werden)
  • Letzte Datendateinummer: Nummer der letzten Datei, gegebenenfalls durch folgende Nullen aufgefüllt (können bei nur einer Datei offensichtlich durch zwei Leerzeichen ersetzt werden)
  • Füllzeichen (37 Null-Bytes)

Danach folgen je Vorlauf einmal die folgenden Daten:

  • Verarbeitungskennzeichen (V: zu verarbeiten, *: nicht zu verarbeiten, L: gelöscht)
  • Dateinummer: Nummer der jeweiligen Vorlauf-Datei (bei DE001 etwa hexadezimal 0100, bei einstelligen Zahlen wird eine Null angehängt)
  • Anwendungsnummer (in der Regel 11)
  • Namenskürzel: zwei Zeichen, frei wählbar
  • Beraternummer: siebenstellige Beraternummer
  • Mandantennummer: fünfstellige Mandantennummer
  • Abrechnungsnummer: sechsstellige Abrechnungsnummer
  • Startdatum: ttmmjj, mit vier führenden Nullen
  • Enddatum: ttmmjj
  • Primanota-Seite: 001
  • Passwort: vierstelliges Passwort

Aufbau der Datendateien DE001, DE002 …

Die Datendatei sieht im Hex-Editor wie in Bild 2 aus. Jede Datendatei enthält zunächst einige allgemeine Informationen (insgesamt 80 Zeichen):

pic002.png

Bild 2: Beispiel für die Datei DE001 mit den eigentlichen Buchungen

  • Vorlaufbeginn/Kennung: Sonderzeichen Chr(24) und Chr(29)
  • Versionsnummer: 1
  • Datenträger-Nummer: zum Beispiel A01
  • Anwendungsnummer: 11
  • Namenskürzel: zwei Zeichen, frei wählbar
  • Beraternummer: siebenstellige Beraternummer
  • Mandantennummer: fünfstellige Mandantennummer
  • Abrechnungsnummer: sechsstellige Abrechnungsnummer
  • Startdatum: ttmmjj
  • Enddatum: ttmmjj
  • Primanota-Seite: 001
  • Passwort: Vierstelliges Passwort
  • Anwendungsinfo: Anwendung, welche die Datei erstellt hat (bei SELF.DLL: SELF ID: 99999, sechzehnstellig, mit Leerzeichen auffüllen)
  • Input-Info: 16 Leerzeichen
  • Satzende: y

Aufbau einer Buchungszeile

Eine Buchungszeile wird in der Postversanddatei in der vorliegenden Lösung wie folgt zusammengesetzt (möglicherweise benötigen Sie weitere Felder – Informationen erhalten Sie im Schnittstellen-Entwicklungsleitfaden für das DATEV-Format, den Sie unter http://www.datev.de/portal/ShowPage.dopid=dpi&nid=115908&stat_Mparam=int_url_datev_datevformat bestellen können):

  • Umsatz: Zeichen + oder gefolgt vom Umsatz in Cent, für 34,90 EUR also beispielsweise +3490
  • Gegenkonto: Buchstabe a, ein Zeichen für den Berichtigungsschlüssel, ein Zeichen für den Steuerschlüssel und maximal fünf Zeichen für die Kontonummer.
  • Belegfeld 1: Buchstabe b und Rechnungsnummer, maximal sechs Stellen
  • Datum: Buchstabe d, gefolgt vom Datum im Format ttmm. Führende Nullen beim Tag werden nicht berücksichtigt.
  • Konto: Buchstabe e gefolgt vom Konto (maximal fünfstellig)
  • Buchungstext: maximal 30 Zeichen
  • Satzende: Buchstabe y

Es kann noch weitere Informationen geben, wenn beispielsweise Steuerkonten nicht automatisch von der Software des Steuerberaters festgelegt werden.

Dies sollte zum Beispiel für Konten wie 8300 (Erlöse 7% USt) oder 8400 (Erlöse 19% USt) der Fall sein.

Speichern der für die Erstellung notwendigen Daten

In der Beispieldatenbank speichern wir die Daten in zwei Tabellen: tblPostversand und tblBuchungen.

Die Tabelle tblPostversand enthält die Informationen für die Erstellung verschiedener Postversanddateien und sieht im Entwurf wie in Bild 3 aus.

pic003.png

Bild 3: Die Tabelle tblPostversand in der Entwurfsansicht

Die Tabelle zum Speichern der Buchungen entwerfen Sie wie in Bild 4. Sie enthält unter anderem zwei Fremdschlüsselfelder zu einer Hilfstabelle namens tblKonten, die alle Konten des Kontenrahmens enthält. Wichtig für die hier vorgestellte Lösung sind die ersten sieben Felder, also diese:

pic004.png

Bild 4: Die Tabelle tblBuchungen in der Entwurfsansicht

  • BuchungID: Primärschlüsselfeld der Tabelle
  • Belegnummer: Nummer des Belegs
  • Buchungsdatum: Datum der Buchung
  • Buchungstext: bis zu 30 Zeichen langer Text
  • Umsatz: Umsatz ohne Vorzeichen
  • KontoID: Fremdschlüsselfeld zur Tabelle tblKonten für das Konto
  • GegenkontoID: Fremdschlüsselfeld zur Tabelle tblKonten für das Gegenkonto

Die Tabelle mit einigen Beispieldatensätzen finden Sie in Bild 5.

pic005.png

Bild 5: Die Tabelle tblBuchungen mit einigen Beispieldatensätzen

Eingabe der Buchungen

Für die Eingabe der Buchungen können Sie das bereits im Beitrag Kassenbuch (http://www.access-im-unternehmen.de/486) vorgestellte Formular einsetzen. Die Daten für die Postversanddateien geben Sie in ein einfaches Formular ein, das auf der Tabelle tblPostversand als Datenherkunft aufbaut (s. Bild 6). Es enthält eine Schaltfläche namens cmdErstellen, die den Prozess zum Erstellen der beiden Postversanddateien startet. Die Steuerung dieses Vorgangs erfolgt innerhalb der dadurch ausgelösten Ereignisprozedur:

pic006.png

Bild 6: Eingabe der Postversanddaten und Start der Erstellung der Dateien

Private Sub cmdErstellen_Click()
    On Error Resume Next
    MkDir CurrentProject.Path & "\" & Me!Unterverzeichnis
    Kill CurrentProject.Path & "\" & Me!Unterverzeichnis & "\DE001"
    Kill CurrentProject.Path & "\" & Me!Unterverzeichnis & "\DV01"
    On Error GoTo 0
    Call VerwaltungsdateiSchreiben
    Call DatendateiSchreiben
End Sub

Diese Prozedur erstellt zunächst ein Unterverzeichnis unterhalb der aktuellen Access-Anwendung, in das die beiden Dateien DV01 und DE001 geschrieben werden sollen. Danach löscht sie eventuell bereits vorhandene Dateien. Anschließend ruft sie zwei weitere Prozeduren auf, die erst die Datei DV01 und dann die Datei DE001 schreiben.

Erzeugen der Verwaltungsdatei DV01

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar