Как перенести документы из 1С 7.7 в 1С 8.3 без обновления исходной базы?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При необходимости перегрузить первичные документы (поступления, реализации, возвраты) из сильно устаревшей конфигурации 1С 7.7 в современную конфигурацию 1С 8.3 (например, «Управление торговлей») разработчики часто сталкиваются с проблемой: типовые правила переноса требуют актуальной версии 7.7, а попытка обновить базу через множество релизов приводит к сбоям и ошибкам потери данных.

Разберем, почему обновлять 7.7 не нужно, и рассмотрим практические способы быстрого и надежного переноса данных.

Почему не следует обновлять 1С 7.7 до актуального релиза

Ошибки о потере данных и нарушении целостности таблиц при обновлении 7.7 с версий многолетней давности возникают из-за смещения внутренних числовых идентификаторов метаданных. В платформе 1С 7.7 отсутствуют регламентные механизмы сквозной реструктуризации при пропуске десятков релизов.

Для выгрузки документов обновлять конфигурацию-источник не требуется. Все инструменты переноса умеют работать с текущей структурой метаданных «как есть».

Способ 1. Использование конфигурации «Конвертация данных 2.1» (КД 2)

Это наиболее гибкий и стандартный метод для выборочного переноса документов и нормативно-справочной информации (НСИ).

Рассмотрим порядок действий по шагам:

  1. Выгрузка структуры метаданных 7.7. Открываем базу 1С 7.7 в режиме «1С:Предприятие» и с помощью внешней обработки MD77Exp.ert выгружаем структуру конфигурации в XML-файл.
  2. Выгрузка структуры метаданных 8.3. В целевой базе 1С 8.3 с помощью обработки MD83Exp.epf выгружаем описание структуры метаданных приемника.
  3. Настройка правил конвертации. Загружаем оба файла метаданных в конфигурацию «Конвертация данных 2.1». Создаем Правила конвертации объектов (ПКО) только для требуемых сущностей:

    — Документы: поступление товаров, реализация товаров, возврат от покупателя;

    — Справочники (НСИ): номенклатура, контрагенты, склады, единицы измерения/упаковки.

  4. Выгрузка и загрузка данных. В базе 1С 7.7 запускаем обработку V8Exchan.ert, выбираем полученный файл правил и формируем XML-файл с данными. В 1С 8.3 загружаем файл через встроенную подсистему БСП или типовую обработку «Универсальный обмен данными в формате XML» (V8Exchan83.epf).

Особенности заполнения объектов в «Управление торговлей 3.3 / 11»

При переносе данных в конфигурацию «Управление торговлей» необходимо учитывать архитектурные различия между версиями 7.7 и 8.3:

  1. Разделение партнеров и контрагентов. Если в УТ включено использование партнеров, для каждого элемента из 7.7 требуется создать два связанных объекта: элемент справочника СправочникСсылка.Партнеры (управленческая сущность) и элемент СправочникСсылка.Контрагенты (юридическое лицо) с заполненной ссылкой на партнера.
  2. Обязательные соглашения и договоры. Документы поступления и реализации в УТ не проведутся без указания соглашения (типового или индивидуального), а также договора (если включен учет по договорам). В правилах конвертации или алгоритмах загрузки необходимо предусмотреть подстановку соглашения по умолчанию.
  3. Статусы документов. В современных редакциях УТ проведение документов зависит от реквизита Статус (например, «Реализовано», «Принято») и корректной хозяйственной операции.
  4. Белорусская специфика (деноминация). Если переносятся документы за периоды до 1 июля 2016 года, суммы и цены в базе 7.7 хранятся в неденоминированных белорусских рублях (BYR). При загрузке в современную систему (BYN) все суммовые поля и цены необходимо программно делить на 10 000.

Способ 2. Прямой перенос через COM/OLE соединение

Если требуется перенести документы без создания сложных правил в КД, можно написать внешнюю обработку в 1С 8.3, которая напрямую подключается к базе 7.7 через COM-соединение.

Проанализируем пример подключения и чтения выборки документов:


База77 = Новый COMОбъект("V77.Application");
КаталогБазы = "C:\Bases\1CBuh77\";
Пользователь = "Администратор";
Пароль = "";

ПараметрыПодключения = КаталогБазы + " /N" + Пользователь + " /P" + Пароль;
Если Не База77.Initialize(База77.RMTrade, ПараметрыПодключения, "NO_SPLASH_SHOW") Тогда
    ВызватьИсключение "Не удалось подключиться к базе 1С 7.7!";
КонецЕсли;

Док77 = База77.CreateObject("Документ.РасходнаяНакладная");
Док77.ВыбратьДокументы(НачалоПериода, КонецПериода);

Пока Док77.ПолучитьДокумент() = 1 Цикл
    // Создаем и заполняем документ в 1С 8.3
    НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    НовыйДок.Дата = Док77.ДатаДок;
    НовыйДок.Номер = Док77.НомерДок;
    // Заполнение реквизитов и табличной части...
    НовыйДок.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;

Важное техническое ограничение COM-соединения: платформа 1С 7.7 является 32-разрядным приложением. Прямой вызов объекта V77.Application из 64-битного клиента или сервера 1С 8.3 приведет к ошибке «Класс не зарегистрирован». Запуск обработки переноса должен выполняться строго под 32-разрядным клиентом 1С 8.3.

Способ 3. Прямое чтение таблиц DBF (для файловых баз 7.7)

Когда COM-соединение недоступно или работает слишком медленно, данные файловой базы 7.7 можно прочитать напрямую через встроенный объект 1С 8.3 XBase или ADODB-соединение:

  1. Файл 1SJOURN.DBF содержит общий журнал документов: даты, номера, флаг проведения и вид документа (идентификатор IDDOC).
  2. Файлы DH*.DBF содержат реквизиты шапок документов (соответствие номеров файлов именам документов определяется по файлу описания метаданных 1CV7.DD).
  3. Файлы DT*.DBF содержат строки табличных частей документов.
  4. Файлы SC*.DBF содержат элементы справочников.

Этот вариант исключает любые проблемы совместимости платформ и позволяет быстро перенести только необходимые данные за ограниченное время.

← На главную