Zurück zur Startseite

Migration 1C:UPP zu UH via Python SQLite

Datenmigrationsfall von 1C:UPP zu 1C:UH implementiert eine dreistufige Pipeline auf Python, SQLite und COM. Gewährleistet Transparenz, Zuordnungen, Referenzkontrolle und Webüberwachung. Geeignet für komplexe Projekte mit Anpassungen.

Migrationspipeline 1C:UPP → UH auf Python + SQLite
Advertisement 728x90

Datenmigration von 1C:ERP zu 1C:HC: Python, SQLite und COM-Pipeline

1C-Entwickler stoßen bei der Umstellung von ERP auf HC oft an Grenzen der Standardkonvertierungstools. Benutzerdefinierte Quelländerungen, Abweichungen in den Datenstrukturen und wiederholte Durchläufe erfordern eine Zwischenschicht. Eine Python- + SQLite- + COM-Pipeline sorgt für volle Transparenz: Import in Rohdatenbanken, verarbeitungsbasiert auf Mapping und Export ins Zielsystem. Der Open-Source-Code ist auf GitHub verfügbar.

Drei-Phasen-Architektur

Die Pipeline gliedert sich in unabhängige Phasen:

  • import: Auslesen aus ERP via COM, Normalisierung und Speichern in SQLite.
  • process: Umwandlung passend zum HC-Modell mittels Feld-, Typ- und Referenz-Mappings.
  • export: Suchen/Erstellen von Objekten in HC und Schreiben via COM.

Zwischenspeicher in SQLite-Datenbanken ermöglichen die Inspektion der Daten an jedem Schritt und den Vergleich von Roh- und Verarbeiteten Versionen. Jede Entität erhält eine eigene Datenbankdatei.

Google AdInline article slot

Anforderungen an die Migrationspipeline

Diese Lösung meistert zentrale Herausforderungen industrieller Migrationen:

  • Übertragung bezogener Entitäten unter Beachtung von Abhängigkeiten.
  • Trennung von Lesen, Verarbeiten und Schreiben.
  • Zwischenspeicherung für Analysen.
  • Automatische und manuelle Feld-/Enum-Mappings.
  • UUID-basierte Referenzverfolgung.
  • Selektiver Neu-Export von Datensätzen.
  • Weboberfläche zum Starten und Überwachen.
  • Geplante Automatisierungen mit Benachrichtigungen.

Warum SQLite als Zwischenschicht?

SQLite überzeugt durch Praktikabilität:

  • Lokaler Zugriff, kein Server nötig.
  • Einfache Vergleiche zwischen Phasen.
  • Problemlose Wiederholungen.
  • Eine DB pro Entität und Phase.

Das Datenformat ist vorhersehbar: Referenzen als JSON mit Anzeigename, UUID und Typ; Enums als Enum.Name.Value.

Google AdInline article slot
{
  "presentation": "Romashka GmbH",
  "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "type": "Catalog.Counterparties"
}

Import aus ERP: Modulare Struktur

Module in IN/ verbinden sich via COM mit ERP, führen Abfragen aus, normalisieren Typen und speichern in die DB. Kernaufgaben:

  • Extrahieren von Anzeigenamen und UUIDs für Referenzen.
  • Behandlung von Enums.
  • Erhaltung von Typen für spätere Transformationen.

Automatisierter Metadatenexport aus ERP und HC erzeugt erste Mappings, vergleicht Attribute und markiert Abweichungen.

Datenverarbeitung: Prozessor und Mappings

Die process-Phase ist das Herzstück: Umbenennung von Feldern, Typkonvertierung, Kontenkonsolidierung, Referenzvorbereitung. Die Logik teilt sich in:

Google AdInline article slot
  • Kernprozessor für Infrastruktur.
  • Benutzerdefinierte PROCESS/<catalog>_processor.py für Geschäftsregeln.

Mappings in dedizierten Dateien:

  • catalog_mapping.json — Routen für Loader/Prozessor/Writer.
  • chart_of_accounts_mapping.json — Kontenrahmen.
  • Übereinstimmungen für Objekte, Felder, Typen und Enums.

Automatisierung erstellt Entwürfe aus Metadaten; manuelle Anpassungen regeln Semantiken.

Referenzverwaltung: reference_objects-Datenbank

Eine dedizierte DB protokolliert erstellte Objekte per UUID:

  • Quellreferenz (Objekt, Feld).
  • Datensatzstatus.
  • Unterstützung für Teilanpassungen und Neu-Exports.

Das beseitigt Fehlerchaos: Referenzstatus ist immer einsehbar.

Export nach HC

Der Writer liest die verarbeitete DB, findet Objekte per Schlüssel, befüllt Attribute und aktualisiert reference_objects. Großer Vorteil: Daten sind vorbereitet, Debugging einfach.

Operative Weboberfläche

Die Web-Schicht startet die Pipeline, zeigt Logs, DBs und selektive Exports. Keine Logikduplikate, teamfreundlicher Zugriff.

Automatisierung und Planung

Integration eines Schedulers: Nachtläufe, Messenger-Alarme. Vom manuellen Start zur vollautomatischen Abläufe.

Vorteile gegenüber Standardkonvertierung

Diese Pipeline bietet:

  • Transparente Zwischendaten.
  • Export-Analyse-Anpassungs-Zyklen.
  • Kontrollierte Mappings und Referenzen.
  • Granulare Überwachung.
  • Web-UI und Scheduling.

Schnellere Einarbeitung neuer Entitäten, keine Vollneubauten.

Wichtige Erkenntnisse

  • Drei-Phasen-SQLite-Pipeline minimiert Migrationsrisiken.
  • Auto- + manuelle Mappings beschleunigen kundenspezifische Setups.
  • Dedizierte Referenzverfolgung verhindert Datenverlust.
  • Web-UI und Scheduling machen den Prozess betriebsfähig.
  • Open-Source-Code für einfache Nachstellung.

— Editorial Team

Advertisement 728x90

Weiterlesen