TToolBox
💻
💻 dev
8 апреля 2026 г.6 мин чтения

Как мигрировать данные из 1С: УПП в 1С: УХ через SQLite и Python COM

Как мигрировать данные из 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 — работает онлайн, без регистрации.
Поделиться:

Теги

#Python#SQLite#1C#Миграция#COM