# 1C:ERP에서 1C:HC로 데이터 마이그레이션: Python, SQLite, COM 파이프라인
1C 개발자들이 ERP에서 HC로 전환할 때 표준 변환 도구의 한계에 자주 부딪힙니다. 커스텀 소스 수정, 데이터 구조 불일치, 반복 실행 등의 문제로 중간 계층이 필요합니다. Python + SQLite + COM 파이프라인은 완전한 투명성을 제공합니다: 원시 데이터베이스 import, 매핑 기반 처리, 대상 export. 오픈소스 코드는 GitHub에서 확인할 수 있습니다.
3단계 아키텍처
파이프라인은 독립적인 단계로 구성됩니다:
- import: COM을 통해 ERP에서 읽어와 정규화한 후 SQLite에 저장.
- process: 필드, 타입, 참조 매핑을 사용해 HC 모델에 맞게 변환.
- export: HC에서 객체를 찾아/생성하고 COM으로 기록.
중간 SQLite 데이터베이스로 각 단계에서 데이터를 검사하고 원시 버전과 처리된 버전을 비교할 수 있습니다. 각 엔티티별로 별도의 데이터베이스 파일을 사용합니다.
마이그레이션 파이프라인 요구사항
이 구조는 주요 산업 마이그레이션 과제를 해결합니다:
- 의존성을 존중하며 관련 엔티티 전송.
- 읽기, 처리, 쓰기를 분리.
- 분석을 위한 중간 데이터 저장.
- 자동/수동 필드/열거형 매핑.
- UUID별 전용 참조 추적.
- 선택적 레코드 재export.
- 실행 및 모니터링 웹 인터페이스.
- 알림이 포함된 스케줄링 자동 실행.
중간 계층으로 SQLite를 선택한 이유
SQLite는 실용성에서 빛납니다:
- 로컬 액세스, 서버 불필요.
- 단계 간 비교 용이.
- 반복 실행 문제 없음.
- 엔티티 및 단계별 하나의 DB.
데이터 형식은 예측 가능합니다: 참조는 JSON으로 표시명, UUID, 타입 포함; 열거형은 Enum.Name.Value 형식.
{
"presentation": "로마쉬카 LLC",
"uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Catalog.Counterparties"
}
ERP에서 Import: 모듈러 구조
IN/의 모듈들은 COM으로 ERP에 연결해 쿼리 실행, 타입 정규화, DB 저장을 수행합니다. 핵심 작업:
- 참조의 표시명과 UUID 추출.
- 열거형 처리.
- 후속 변환을 위한 타입 보존.
자동화된 ERP 및 HC 메타데이터 export로 초기 매핑 생성, 속성 비교, 불일치 플래그.
데이터 처리: 프로세서와 매핑
process 단계가 핵심입니다: 필드 이름 변경, 타입 변환, 계정 통합, 참조 준비. 로직은 다음과 같이 분리:
- 인프라를 위한 코어 프로세서.
- 비즈니스 규칙을 위한 커스텀
PROCESS/<catalog>_processor.py.
매핑은 전용 파일에 저장:
catalog_mapping.json— 로더/프로세서/라이터 경로.chart_of_accounts_mapping.json— 계정과목표.- 객체, 필드, 타입, 열거형 매칭.
자동화된 메타데이터 초안; 수동 조정으로 의미론 처리.
참조 관리: reference_objects 데이터베이스
UUID별 생성된 객체를 추적하는 전용 DB:
- 소스 참조 (객체, 필드).
- 레코드 상태.
- 부분 업데이트 및 재export 지원.
오류 혼란을 줄입니다: 참조 상태가 항상 보입니다.
HC로 Export
라이터는 처리된 DB를 읽어 키로 객체를 찾고, 속성을 채우며 reference_objects 업데이트. 핵심 이점: 데이터 사전 준비, 디버깅 간단.
운영 웹 인터페이스
웹 계층으로 파이프라인 실행, 로그/DB 표시, 선택적 export. 로직 중복 없음, 팀 접근 용이.
자동화 및 스케줄링
스케줄러 통합: 야간 실행, 메신저 알림. 수동에서 완전 자동화로.
표준 변환 대비 우위
이 파이프라인의 장점:
- 투명한 중간 데이터.
- export-분석-조정 사이클.
- 제어된 매핑 및 참조.
- 세밀한 감독.
- 웹 UI와 스케줄링.
신규 엔티티 빠른 온보딩, 전체 재구축 불필요.
주요 요약
- 3단계 SQLite 파이프라인으로 마이그레이션 위험 최소화.
- 자동+수동 매핑으로 커스텀 설정 가속.
- 전용 참조 추적으로 데이터 손실 방지.
- 웹 UI와 스케줄링으로 프로세스 운영화.
- 오픈소스 코드로 쉬운 복제.
— Editorial Team
아직 댓글이 없습니다.