Volver al inicio

Migración 1C:UPP a UH vía Python SQLite

Caso de migración de datos de 1C:UPP a 1C:UH implementa una pipeline de tres etapas en Python, SQLite y COM. Asegura transparencia, mapeos, control de referencias y monitoreo web. Adecuado para proyectos complejos con personalizaciones.

Pipeline de migración 1C:UPP → UH en Python + SQLite
Advertisement 728x90

# Migración de datos de 1C:ERP a 1C:HC: Pipeline con Python, SQLite y COM

Los desarrolladores de 1C suelen encontrarse con obstáculos al usar las herramientas estándar de conversión al pasar de ERP a HC. Las modificaciones personalizadas en la fuente, las discrepancias en las estructuras de datos y las ejecuciones repetidas requieren una capa intermedia. Un pipeline con Python + SQLite + COM ofrece total transparencia: importación a bases de datos crudas, procesamiento basado en mapeos y exportación al destino. El código de fuente abierta está disponible en GitHub.

Arquitectura de tres etapas

El pipeline se divide en etapas independientes:

  • import: Lectura desde ERP vía COM, normalización y guardado en SQLite.
  • process: Transformación para adaptarse al modelo de HC usando mapeos de campos, tipos y referencias.
  • export: Localización/creación de objetos en HC y escritura vía COM.

Las bases de datos SQLite intermedias permiten inspeccionar los datos en cada paso y comparar versiones crudas vs. procesadas. Cada entidad tiene su propio archivo de base de datos.

Google AdInline article slot

Requisitos del pipeline de migración

Esta configuración resuelve desafíos clave de migraciones industriales:

  • Transferencia de entidades relacionadas respetando dependencias.
  • Separación de lectura, procesamiento y escritura.
  • Almacenamiento de datos intermedios para análisis.
  • Mapeos automáticos y manuales de campos/enumeraciones.
  • Seguimiento dedicado de referencias por UUID.
  • Reexportación selectiva de registros.
  • Interfaz web para lanzamiento y monitoreo.
  • Ejecuciones automáticas programadas con notificaciones.

Por qué SQLite como capa intermedia

SQLite destaca por su practicidad:

  • Acceso local, sin servidor necesario.
  • Comparaciones fáciles entre etapas.
  • Soporta ejecuciones repetidas sin problemas.
  • Una BD por entidad y etapa.

El formato de datos es predecible: referencias en JSON con nombre de presentación, UUID y tipo; enumeraciones como Enum.Nombre.Valor.

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

Importación desde ERP: Estructura modular

Los módulos en IN/ se conectan a ERP vía COM, ejecutan consultas, normalizan tipos y guardan en BD. Tareas principales:

  • Extracción de nombres de presentación y UUID para referencias.
  • Manejo de enumeraciones.
  • Preservación de tipos para transformaciones posteriores.

La exportación automatizada de metadatos de ERP y HC genera mapeos iniciales, compara atributos y marca discrepancias.

Procesamiento de datos: Procesador y mapeos

La etapa process es el núcleo: renombrado de campos, conversión de tipos, consolidación de cuentas, preparación de referencias. La lógica se divide en:

Google AdInline article slot
  • Procesador central para infraestructura.
  • PROCESS/<catálogo>_processor.py personalizado para reglas de negocio.

Los mapeos residen en archivos dedicados:

  • catalog_mapping.json — rutas de cargador/procesador/escritor.
  • chart_of_accounts_mapping.json — plan de cuentas.
  • Coincidencias de objetos, campos, tipos y enumeraciones.

La automatización genera borradores desde metadatos; ajustes manuales manejan semántica.

Gestión de referencias: Base de datos reference_objects

Una BD dedicada rastrea objetos creados por UUID:

  • Referencia fuente (objeto, campo).
  • Estado del registro.
  • Soporte para actualizaciones parciales y reexportaciones.

Esto elimina el caos de errores: el estado de referencias siempre es visible.

Exportación a HC

El escritor lee la BD procesada, localiza objetos por clave, pobla atributos y actualiza reference_objects. Ventaja clave: datos preprocesados, depuración sencilla.

Interfaz web operativa

La capa web inicia el pipeline, muestra logs, BDs y exportaciones selectivas. Sin duplicación de lógica, acceso amigable para equipos.

Automatización y programación

Integración con programador: ejecuciones nocturnas, alertas por mensajería. De lanzamientos manuales a operaciones automáticas.

Ventajas sobre la conversión estándar

Este pipeline ofrece:

  • Datos intermedios transparentes.
  • Ciclos de exportar-analizar-ajustar.
  • Mapeos y referencias controlados.
  • Supervisión granular.
  • UI web y programación.

Incorporación más rápida de nuevas entidades, sin reconstrucciones completas.

Conclusiones clave

  • Pipeline SQLite de tres etapas reduce riesgos de migración.
  • Mapeos auto + manual aceleran configuraciones personalizadas.
  • Seguimiento dedicado de referencias previene pérdidas de datos.
  • UI web y programación operacionalizan el proceso.
  • Código de fuente abierta para replicación fácil.

— Editorial Team

Advertisement 728x90

Leer después