GnuCash zum Jahreswechsel

Seit vielen Jahren benutze ich Gnucash für meine Buchhaltung. Neben einem angepassten Standardkontenrahmen sind auch Stammdaten wie Kunden und Lieferanten in Gnucash gepflegt, wodurch eine zeitsparende und effiziente Zuordnung von Buchungen möglich ist.

Problemstellung

Die Speicherung von Stammdaten und der beweglichen Daten wie Buchungen und Belege erfolgt in ein und derselben Datei. Aus Performancegründen initialisiere ich diese Datei im Rahmen des Jahresabschlusses neu. Dadurch gehen normalerweise auch die Stammdaten verloren, so dass sie neu angelegt werden müssten.

Lösung

Sofern kein anderes Backend benutzt wird, handelt es sich bei der GnuCash-Datei um eine per gzip gepackte XML-Datei. Diese kann an der Kommandozeile entpackt werden:

$ cp firma_2021.gnucash firma_2022.gnucash
$ gunzip -k -S .gnucash firma_2022.gnucash

Anschließend wird sie mit einem beliebigen Text-Editor (vorzugsweise mit XML-Syntax-Highlighting) bearbeitet. Dabei werden die Elemente innerhalb der Strukturelemente der beweglichen Daten entfernt. Die Elemente der Stammdaten bleiben unberührt.

$ micro firma_2022

Zu entfernen:

  • <act:lot>-Elemente unterhalb <act:lots> in allen <gnc:account>-Elementen
  • Alle <gnc:transaction>-Elemente
  • Alle <gnc:GncEntry>-Elemente
  • Alle <gnc:GncInvoice>-Elemente

Anschließend wird die Datei wieder mit gzip gepackt:

$ rm firma_2022.gnucash
$ gzip -k -S .gnucash firma_2022

Die GnuCash-Datei des Vorjahres ist nun bereit zur Nutzung im aktuellen Jahr.