# 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.
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.
{
"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:
- Procesador central para infraestructura.
PROCESS/<catálogo>_processor.pypersonalizado 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
Aún no hay comentarios.