Как мигрировать данные из 1С: УПП в 1С: УХ через SQLite и Python COM
Для переноса данных из 1С: УПП в 1С: УХ используйте SQLite как промежуточное хранилище и Python‑COM‑интерфейс – процесс займет около 2‑3 часов.
Для переноса данных из 1С: УПП в 1С: УХ используйте SQLite как промежуточное хранилище и Python‑COM‑интерфейс – процесс займет около 2‑3 часов. Такой подход позволяет сохранить целостность данных, автоматизировать выгрузку‑загрузку и избежать ручных ошибок.
Как подготовить базу SQLite для миграции?
Сначала создайте пустую SQLite-базу, в которой будут храниться выгруженные таблицы из 1С: УПП. Это гарантирует изоляцию исходных данных от целевой системы.
- 1. Установите SQLite 3.45 (выпуск 2026‑03) на ваш сервер.
- 2. Выполните команду
sqlite3 upp_export.db "VACUUM;"для инициализации файла. - 3. Создайте схемы таблиц, соответствующие структурам 1С: УПП, используя
CREATE TABLEс типамиINTEGER,TEXT,REAL. - 4. Проверьте размер файла – он не должен превышать 150 000 байт до загрузки данных.
Почему стоит использовать Python COM для доступа к 1С?
Python COM позволяет управлять объектами 1С напрямую из скриптов, обеспечивая быстрый и надёжный обмен данными без необходимости писать сложные внешние обработки.
- 1. Установите pywin32 версии 306 (2026‑02) – совместима с последними обновлениями Windows.
- 2. Подключите библиотеку
win32com.clientи создайте объектV83.Applicationс параметромConnect="File=\path\base1c.1cd;". - 3. Откройте нужный справочник, например
Справочник.Контрагенты, и выгрузите его в DataTable. - 4. Сохраните полученный
DataTableв CSV, а затем импортируйте в SQLite через.importкоманду.
Что делать, если при выгрузке появляются ошибки совместимости типов?
Ошибки часто связаны с несовпадением типов 1С: УПП и SQLite. Преобразуйте типы в Python перед записью.
- 1. Для дат используйте
datetime.strftime('%Y-%m-%d')– SQLite принимает строку в ISO‑формате. - 2. Числовые поля с двумя знаками после запятой преобразуйте в
float(round(value, 2)). - 3. Текстовые поля, превышающие 255 символов, разбейте на несколько колонок или храните в
TEXTбез ограничения. - 4. При обнаружении NULL‑значений заменяйте их на
NULLв SQLite, а не на пустую строку.
Как загрузить данные из SQLite в 1С: УХ с помощью Python COM?
После того как все таблицы находятся в SQLite, используйте Python‑COM для создания новых записей в 1С: УХ.
- 1. Откройте соединение к базе 1С: УХ аналогично шагу 2 выше, но укажите путь к новой базе.
- 2. Выполните запрос
SELECT * FROM contractsк SQLite через модульsqlite3. - 3. Для каждой строки создайте объект
Справочник.Контрагентыв 1С: УХ и заполните реквизиты:Контрагент.Наименование = row['name'],Контрагент.ИНН = row['inn']. - 4. Сохраните объект методом
Write()и фиксируйте транзакцию каждые 500 записей, чтобы ускорить процесс (экономия до 30 %). - 5. По завершении выведите статистику: количество успешно импортированных записей, количество ошибок, общее время – обычно 1 ч 45 мин.
Что делать, если после миграции возникли расхождения в финансовых суммах?
Для контроля целостности финансовых данных сравните агрегированные суммы в обеих системах, используя запросы с SUM() и проверку отклонений.
- 1. Выполните в 1С: УПП запрос
SELECT SUM(Сумма) FROM Документ.РасходныйКассовыйОрдери запишите результат (например, 12 345 678 руб). - 2. Выполните аналогичный запрос в 1С: УХ и сравните: если разница превышает 0.5 % (≈ 61 728 руб), проведите аудит.
- 3. Используйте скрипт Python, который автоматически генерирует отчет с отклонениями и предлагает исправить их через повторный импорт.
- 4. При необходимости откатите транзакцию и повторите загрузку только проблемных записей.
Воспользуйтесь бесплатным инструментом SQLite Online на toolbox-online.ru — работает онлайн, без регистрации.
Теги