Was ist Versionierung?
Versionierung bedeutet, dass ein System bei jeder Änderung eines Dokuments die vorherige Fassung aufbewahrt, sodass sich jeder frühere Stand wieder ansehen lässt.
Ohne Fachbegriffe, für Betriebe ohne eigene IT.
Auf dieser Seite4 Abschnitte
Einfach erklärt
Ohne Versionierung überschreibt jede Änderung den alten Stand, wie Radieren mit Bleistift. Mit Versionierung ist es eher wie bei einem Vertrag mit Nachträgen: Der ursprüngliche Text bleibt, jede Änderung kommt als neue Fassung mit Datum und Namen dazu. Sie können jederzeit sehen, was vorher dastand. Bei Bedarf holen Sie eine alte Fassung zurück.
Wo Ihnen Versionen begegnen
- In Dateiablagen und Cloudspeichern, die beim Speichern ältere Stände behalten.
- In Wikis und Wissensdatenbanken, die Änderungen an einer Seite festhalten.
- In Ablagesystemen für Dokumente, die mehrere Dateistände unter einem Dokument führen.
- In der Verfahrensdokumentation selbst. Änderungen daran müssen versioniert und nachvollziehbar sein.
Warum das für Belege zählt
Im Steuerrecht gilt ein Radierverbot: Eine Buchung oder Aufzeichnung darf nicht so verändert werden, dass der ursprüngliche Inhalt nicht mehr feststellbar ist (§ 146 Abs. 4 AO). Versionierung ist ein Weg, das einzuhalten. Die GoBD nennen sie ausdrücklich als ein Mittel neben Sperren, Protokollen und Rechten.
Was Versionierung nicht kann
Versionen schützen nur, solange niemand sie löschen kann. Manche Systeme räumen alte Stände sogar selbst auf. Nextcloud etwa dünnt Versionen mit der Zeit aus und löscht die ältesten, wenn sie mehr als die Hälfte des freien Speichers belegen. Eine Version ist auch keine Sicherung: Fällt das System aus, sind alle Fassungen zugleich weg. Dafür braucht es ein Backup.
Versionieren, protokollieren, festschreiben
| Mechanismus | Hält fest | Beispiel |
|---|---|---|
| Versionierung | frühere Inhalte einer Datei | Dateistand 1, 2, 3 |
| Protokoll (Audit-Log) | wer wann was geändert hat | geänderter Korrespondent, Löschung |
| Sperre oder Festschreibung | dass sich nichts mehr ändert | WORM-Speicher, abgeschlossener Buchungszeitraum |
Die GoBD nennen Historisierungen und Versionierungen als softwaremäßige Mittel der Unveränderbarkeit (Rz. 110). Spätere Änderungen sind so vorzunehmen, dass der ursprüngliche Inhalt und die Tatsache der Änderung erkennbar bleiben. Auch eine Änderungshistorie darf nicht nachträglich veränderbar sein (Rz. 111).
Beispiele aus der Praxis
- Paperless-ngx führt seit Version 3.0 Dateiversionen je Dokument. Versionsdateien erhalten die Endung
_vN, Suche und Inhalt zeigen ab Werk die neueste Version. Metadaten wie Tags und Korrespondent gelten für alle Versionen gemeinsam, ihre Änderungen hält das Audit-Log fest (seit 2.7 ab Werk eingeschaltet). Versionen außer der ersten lassen sich über die API löschen. - Nextcloud legt bei jeder Änderung eine Version an und dünnt nach festem Schema aus, nach 30 Tagen bleibt eine Version pro Woche. Gesteuert wird das über
versions_retention_obligationin derconfig.php. Die Regeln dienen dem Speicherplatz, nicht einer Aufbewahrungsfrist. - S3-Versionierung ist Voraussetzung für Object Lock. Erst die Sperre verhindert, dass Versionen gelöscht werden.
Typische Fehler
- Versionen ohne Sperre. Wer Versionen löschen darf, kann die Historie bereinigen.
- Ausdünnung als Archiv missverstanden. Ein Dateispeicher mit Versionen ersetzt keine Aufbewahrung über acht oder zehn Jahre.
- Protokoll ohne Inhalt. Ein Audit-Log zeigt, dass sich etwas geändert hat, aber nicht den alten Dateiinhalt.
- Verfahrensdokumentation überschrieben statt fortgeschrieben (GoBD Rz. 154).
Prüfen
Ein Testdokument ändern und dann klären: Ist der alte Stand abrufbar? Steht die Änderung mit Person und Zeit im Protokoll? Kann ein normaler Benutzer die alte Version löschen? In Paperless-ngx lädt man eine neue Version per API hoch und ruft die alte gezielt ab:
curl -H "Authorization: Token $TOKEN" -F "document=@rechnung-korrigiert.pdf" \
https://dms.example.de/api/documents/123/update_version/
curl -H "Authorization: Token $TOKEN" \
"https://dms.example.de/api/documents/123/download/?version=456" -o alt.pdf