Import von Umsätzen aus dem FinanzManager

Umstieg von FinanzManager (Quicken) auf Hibiscus

 
kasch
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Freising
Beiträge: 2
Dabei seit: 05 / 2025
Betreff:

Import von Umsätzen aus dem FinanzManager

 · 
Gepostet: 22.05.2025 - 19:37 Uhr  ·  #1
Hi alle zusammen,
ich benutze seit Jahren Quicken bzw. den Nachfolger FinanzManager von LexWare. Die geänderten Geschäftsbedingungen von Microsoft (siehe auch hier) veranlassen mich komplett auf Linux umzusteigen. Somit versuche ich auf Hibiscus umzusatteln.

Für den Import einiger Offline-Konten vom FinanzManager in Hibiscus habe ein kleines AWK-Script zur Konvertierung der Datensätze aus dem FinanzManager geschrieben. Mit Hilfe des Scripts entsteht eine CSV-Datei, die sich in Hibiskus importieren lässt. Das ist vielleicht auch für andere interessant.

Windows-User sind hier erst einmal außen vor. Das Script lässt sich möglicherweise auch für Windows nutzen, wenn man ein entsprechendes Programm für Windows installiert (z.B. von https://gnuwin32.sourceforge.net/packages/gawk.htm).

Exportiert man ein Konto im FinanzManger, dann hat die exportierte Datei (Haushaltskasse.QIF) folgendes Format:
Code

!Option:MDY
!Type:Cash 
D1.1.02
U126.72
T126.72
CX
PEröffnungssaldo
L[Haushaltskasse]
^
D1.7.02
U500.00
T500.00
CX
PKarsten S
MGA-EU0000XXX0 KARTE 2/12.0207.01 08.51 00XXX1/  08XXX8
L[Postgiro Karsten]
^
D1.7.02
U-21.37
T-21.37
CX
POBI
MDosen,Klingelleitung
L[Wohnhaus]
^

Diese habe ich nun mit folgenden Script (QIF2hibiscus.awk) in ein CSV-File konvertiert.
Code

function ChangeUmlaut(str) {
    gsub(/\xc4/,"Ä",str); gsub(/\xd6/,"Ö",str); gsub(/\xdc/,"Ü",str); gsub(/\xe4/,"ä",str); gsub(/\xf6/,"ö",str); gsub(/\xfc/,"ü",str); gsub(/\xdf/,"ß",str);
    return str
}
function FormatDate(field) {
    split(field,a,"."); newdate=sprintf("%02d.%02d.20%02d", a[2], a[1], a[3]);
    return newdate
}
BEGIN {
    Konto="Haushaltskasse";
    RS = "^"; FS = "\n";
    print "\"#\";\"IBAN\";\"BIC\";\"Konto\";\"Gegenkonto\";\"Gegenkonto BLZ\";\"Gegenkonto Inhaber\";\"Betrag\";\"Valuta\";\"Datum\";\"Verwendungszweck\";\"Verwendungszweck 2\";\"Zwischensumme\";\"Primanota\";\"Kundenreferenz\";\"Kategorie\";\"Notiz\";\"Weitere Verwendungszwecke\";\"Art\";\"Vormerkbuchung\";\"End-to-End ID\";\"Kategorie-Pfad\";\"Mandatsreferenz\";\"Gläubiger ID\""
    zwischensumme=0.0;
} {
    #CONVFMT = "%2.2f";
    GegenkontoInhaber=""; datum=""; betrag=0.0; newdate=""; verwendungszweck=""; kategorie=""; kategoriepfad="";
    for (i=1;i<=NF;i++) {
        gsub("\r","",$i);
        if  (substr($i,1,1) == "D") {
            gsub("D","",$i); datum=$i;
        } else if (substr($i,1,1) == "U") {
            gsub("U","",$i); gsub(",","",$i); gsub("\\.",",",$i); betrag=$i; zwischensumme += betrag;
        } else if (substr($i,1,1) == "P") {
            gsub("^P","",$i); GegenkontoInhaber=ChangeUmlaut($i);
        } else if (substr($i,1,1) == "M") {
            gsub("^M","",$i); gsub(" +"," ",$i);
            verwendungszweck=ChangeUmlaut($i);
        } else if (substr($i,1,1) == "L") {
            gsub("^L","",$i);
            if (substr($i,1,1) != "[") {
                kategoriepfad=ChangeUmlaut($i);
                n=split(kategoriepfad,A,":");
                kategorie=A[n];
                gsub(":","/",kategoriepfad);
            }
        }
    }
    if (datum!="") {
        newdate=FormatDate(datum);
     ## printf "\"%d\";\"\";\"\";\"%s\";\"\";\"\";\"%s\";\"%.2f\";\"%.2f\";\"%s\";\"%s\";\"\";\"%.2f\";\"\";\"\";\"%s\";\"\";\"\";\"\";\"\";\"\";\"%s\";\"\";\"\"\n", FNR, Konto, GegenkontoInhaber, betrag, valuta, newdate, verwendungszweck, zwischensumme, kategorie, kategoriepfad;
        printf "\"%d\";\"\";\"\";\"%s\";\"\";\"\";\"%s\";\"%.2f\";\"%s\";\"%s\";\"%s\";\"\";\"%.2f\";\"\";\"\";\"%s\";\"\";\"\";\"\";\"\";\"\";\"%s\";\"\";\"\"\n", FNR, Konto, GegenkontoInhaber, betrag, newdate, newdate, verwendungszweck, zwischensumme, kategorie, kategoriepfad;
    }
}

Das Script wird mit folgendem Befehl auf der Linux-Console aufgerufen:
Code

$ LC_CTYPE=C awk --use-lc-numeric -f QIF2hibiscus.awk Haushaltskasse.QIF >Haushaltskasse.csv

Der Schalter –use-lc-numeric ist nicht bei jeder awk-Version nötig. Sollte beim Aufruf ein Fehler ausgegeben werden, einfach das Script ohne diesen Schalter aufrufen.

Die entstehende Datei (Haushaltskasse.csv) sieht so aus:
Code

"#";"IBAN";"BIC";"Konto";"Gegenkonto";"Gegenkonto BLZ";"Gegenkonto Inhaber";"Betrag";"Valuta";"Datum";"Verwendungszweck";"Verwendungszweck 2";"Zwischensumme";"Primanota";"Kundenreferenz";"Kategorie";"Notiz";"Weitere Verwendungszwecke";"Art";"Vormerkbuchung";"End-to-End ID";"Kategorie-Pfad";"Mandatsreferenz";"Gläubiger ID"
"1";"";"";"Haushaltskasse";"";"";"Eröffnungssaldo";"126,72";"01.01.2002";"01.01.2002";"";"";"126,72";"";"";"";"";"";"";"";"";"";"";""
"2";"";"";"Haushaltskasse";"";"";"Karsten S";"500,00";"07.01.2002";"07.01.2002";"GA-EU0000XXX0 KARTE 2/12.0207.01 08.51 00XXX1/ 08XXX8";"";"626,72";"";"";"";"";"";"";"";"";"";"";""
"3";"";"";"Haushaltskasse";"";"";"OBI";"-21,37";"07.01.2002";"07.01.2002";"Dosen,Klingelleitung";"";"605,35";"";"";"";"";"";"";"";"";"";"";""

Diese erzeugte CSV-Datei ließ sich problemlos in Hibiscus importieren.
quasimodoz
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 19
Dabei seit: 02 / 2009
Betreff:

Das hört sich gut an

 · 
Gepostet: 26.05.2025 - 15:44 Uhr  ·  #2
Ich bin auch gerade auf der Suche nach einer Alternative zum FinanzManager, da ich mich nicht länger von Redmond gängeln lassen will und Lexware die neueste Version auch nur noch als Abo anbietet - nicht mit mir. Hibiscus scheint mir erprobenswert zu sein. Da kommt eine Hilfe wie dein Script doch sehr gelegen. Aber warum sollte das nur für Offline-Konten gehen? Im FM kann ich doch alle Konten in eine QIF-Datei exportieren.

Im Übrigen, ich teste Hibiscus gerade auf einem uralt Laptop unter Mint 22.1. Mint läuft prima. Die erste Installation von Hibiscus war ziemlich mühsam und dann habe ich die Einrichtung meines DKB-Kontos nicht hin bekommen. Da muss ich wohl etwas falsch gemacht haben, nur weiß ich noch nicht was. Also, alles wieder gelöscht und nun wird von Neuem angefangen....
kasch
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Freising
Beiträge: 2
Dabei seit: 05 / 2025
Betreff:

Re: Import von Umsätzen aus dem FinanzManager

 · 
Gepostet: 28.05.2025 - 15:36 Uhr  ·  #3
Prima, dass das Script auch bei anderen Hibiscus-Nutzern funktioniert und so nützlich ist.
Mit meinem DKB-Konto hatte ich bei der Einrichtung keinerlei Probleme.
Jetzt ist Hibiscus eine Online-Banking-Tool und FinanzManager eher auch zur Buchhaltung gedacht. Daraus ergeben sich in Hibiscus eine Reihe von Lücken, die ich mit Plugins (SynTAX, Depot-Viewer) füllen möchte. Hier bin ich aber noch am Anfang...
Gewählte Zitate für Mehrfachzitierung:   0