Как правильно перенести данные из 1С 8.3 в устаревшую версию 7.7

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Метод 1: Использование конфигурации «Конвертация данных 2.1»

Это наиболее профессиональный и гибкий способ. Несмотря на то, что «семерка» считается устаревшей, Конвертация данных 2.1 (КД 2.1) поддерживает работу с ней. Разберем по шагам, как настроить этот процесс:

  1. Подготовка описания конфигураций. Для создания правил обмена нам необходимо иметь структуру метаданных обеих баз в формате XML. Для 1С 8.3 мы используем стандартную обработку MD83Exp.epf. Для 1С 7.7 нам потребуется специальная обработка, обычно это MD82Exp.ert (не пугайтесь названия, она корректно выгружает описание для КД 2.1 из «семерки»).
  2. Создание правил обмена. В самой базе КД 2.1 создаем новую настройку обмена. Настраиваем соответствия объектов: справочников (Номенклатура, Контрагенты) и документов (Приходная накладная, Реализация).
  3. Решение проблемы идентификации. В 1С 8.3 каждый объект имеет уникальный GUID. В 1С 7.7 такой сущности нет. Поэтому при настройке Полей поиска в правилах КД 2.1 для «семерки» мы должны опираться на Код (для справочников) или связку Номер + Дата (для документов).
  4. Выгрузка и загрузка. Для выгрузки из 8.3 используется обработка УниверсальныйОбменДаннымиXML.epf. А вот для загрузки в 7.7 нам понадобится внешняя обработка V77Imp.ert, которая поставляется вместе с конфигурацией «Конвертация данных».

Метод 2: Обмен через COM-соединение (Automation)

Если документов немного, но перенос должен быть регулярным, проанализируем вариант прямого подключения из одной базы в другую. Чаще всего логику пишут на стороне 7.7, так как она является «принимающей» стороной. Выясним причину выбора этого метода: он позволяет избежать создания промежуточных файлов.

Рассмотрим пример логики на языке 1С 7.7 для подключения к базе 8.3:


// Создаем объект подключения к 8.3
V83COM = СоздатьОбъект("V83.COMConnector");
// Строка подключения к базе 8.3
Connection = V83COM.Connect("File=""C:\Bases\Enterprise83"";Usr=""Admin"";Pwd=""123"";");

// Пример получения данных из справочника Контрагенты
Выборка = Connection.Справочники.Контрагенты.Выбрать();
Пока Выборка.Следующий() = 1 Цикл
    // Создаем или обновляем контрагента в 7.7
    Спр77 = СоздатьОбъект("Справочник.Контрагенты");
    // Здесь должна быть логика поиска и заполнения реквизитов
КонецЦикла;

Важный нюанс: для работы этого метода на компьютере должны быть установлены обе платформы, а COM-компоненты «восьмерки» должны быть корректно зарегистрированы в операционной системе.

Метод 3: Выгрузка в промежуточный формат (XML, JSON, Excel)

Если вы не хотите глубоко погружаться в КД 2.1 или возиться с регистрацией COM-классов, можно использовать «народный» метод — выгрузку данных в файл. Посмотрим на примерную последовательность действий:

  1. В базе 1С 8.3: Пишется небольшая обработка, которая собирает данные нужных документов в структуру или таблицу и сохраняет их, например, в XML.
  2. В базе 1С 7.7: Пишется обработка загрузки, которая читает этот файл. Для работы с XML в 7.7 часто используют объект Microsoft.XMLDOM.

Проанализируем ситуацию с форматом Excel: это самый простой способ для разового переноса. В 8.3 любой список (например, список документов «Реализация») можно вывести в таблицу через меню «Еще» — «Вывести список» и сохранить как Excel-файл. В 7.7 для загрузки таких данных можно воспользоваться универсальной обработкой Загрузка данных из табличного документа, которую легко найти на профильных ресурсах для программистов.

Технические сложности и ограничения

При реализации любого из этих методов мы неизбежно столкнемся с техническими особенностями 1С 7.7. Разберем их подробнее, чтобы избежать ошибок при проектировании обмена:

Итоги и рекомендации

Выясним, какой метод выбрать именно вам. Если перенос разовый и документов всего «несколько штук», самым правильным советом будет — набрать их вручную. Это быстрее, чем тратить часы на разработку и отладку правил обмена.

Если же требуется постоянная синхронизация, то:

Всегда помните о необходимости предварительного бэкапа базы 7.7 перед началом любых экспериментов по загрузке данных, так как механизмы транзакций и отката изменений в старой платформе работают менее надежно, чем в современных версиях.

← На главную