Перенос данных из современной платформы 1С:Предприятие 8.3 в устаревшую, но все еще используемую 1С 7.7 — задача нетривиальная. В кругах разработчиков это часто называют попыткой «прокрутить фарш обратно», так как структура данных в «восьмерке» значительно сложнее и богаче. Тем не менее, ситуации бывают разные: от требований заказчика до необходимости консолидации данных в старых системах. Рассмотрим подробнее, какими инструментами и методами можно реализовать этот процесс.
Это наиболее профессиональный и гибкий способ. Несмотря на то, что «семерка» считается устаревшей, Конвертация данных 2.1 (КД 2.1) поддерживает работу с ней. Разберем по шагам, как настроить этот процесс:
MD83Exp.epf. Для 1С 7.7 нам потребуется специальная обработка, обычно это MD82Exp.ert (не пугайтесь названия, она корректно выгружает описание для КД 2.1 из «семерки»).GUID. В 1С 7.7 такой сущности нет. Поэтому при настройке Полей поиска в правилах КД 2.1 для «семерки» мы должны опираться на Код (для справочников) или связку Номер + Дата (для документов).УниверсальныйОбменДаннымиXML.epf. А вот для загрузки в 7.7 нам понадобится внешняя обработка V77Imp.ert, которая поставляется вместе с конфигурацией «Конвертация данных».Если документов немного, но перенос должен быть регулярным, проанализируем вариант прямого подключения из одной базы в другую. Чаще всего логику пишут на стороне 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-компоненты «восьмерки» должны быть корректно зарегистрированы в операционной системе.
Если вы не хотите глубоко погружаться в КД 2.1 или возиться с регистрацией COM-классов, можно использовать «народный» метод — выгрузку данных в файл. Посмотрим на примерную последовательность действий:
XML.Microsoft.XMLDOM.Проанализируем ситуацию с форматом Excel: это самый простой способ для разового переноса. В 8.3 любой список (например, список документов «Реализация») можно вывести в таблицу через меню «Еще» — «Вывести список» и сохранить как Excel-файл. В 7.7 для загрузки таких данных можно воспользоваться универсальной обработкой Загрузка данных из табличного документа, которую легко найти на профильных ресурсах для программистов.
При реализации любого из этих методов мы неизбежно столкнемся с техническими особенностями 1С 7.7. Разберем их подробнее, чтобы избежать ошибок при проектировании обмена:
Выясним, какой метод выбрать именно вам. Если перенос разовый и документов всего «несколько штук», самым правильным советом будет — набрать их вручную. Это быстрее, чем тратить часы на разработку и отладку правил обмена.
Если же требуется постоянная синхронизация, то:
Всегда помните о необходимости предварительного бэкапа базы 7.7 перед началом любых экспериментов по загрузке данных, так как механизмы транзакций и отката изменений в старой платформе работают менее надежно, чем в современных версиях.