При необходимости перегрузить первичные документы (поступления, реализации, возвраты) из сильно устаревшей конфигурации 1С 7.7 в современную конфигурацию 1С 8.3 (например, «Управление торговлей») разработчики часто сталкиваются с проблемой: типовые правила переноса требуют актуальной версии 7.7, а попытка обновить базу через множество релизов приводит к сбоям и ошибкам потери данных.
Разберем, почему обновлять 7.7 не нужно, и рассмотрим практические способы быстрого и надежного переноса данных.
Ошибки о потере данных и нарушении целостности таблиц при обновлении 7.7 с версий многолетней давности возникают из-за смещения внутренних числовых идентификаторов метаданных. В платформе 1С 7.7 отсутствуют регламентные механизмы сквозной реструктуризации при пропуске десятков релизов.
Для выгрузки документов обновлять конфигурацию-источник не требуется. Все инструменты переноса умеют работать с текущей структурой метаданных «как есть».
Это наиболее гибкий и стандартный метод для выборочного переноса документов и нормативно-справочной информации (НСИ).
Рассмотрим порядок действий по шагам:
MD77Exp.ert выгружаем структуру конфигурации в XML-файл.MD83Exp.epf выгружаем описание структуры метаданных приемника.— Документы: поступление товаров, реализация товаров, возврат от покупателя;
— Справочники (НСИ): номенклатура, контрагенты, склады, единицы измерения/упаковки.
V8Exchan.ert, выбираем полученный файл правил и формируем XML-файл с данными. В 1С 8.3 загружаем файл через встроенную подсистему БСП или типовую обработку «Универсальный обмен данными в формате XML» (V8Exchan83.epf).При переносе данных в конфигурацию «Управление торговлей» необходимо учитывать архитектурные различия между версиями 7.7 и 8.3:
СправочникСсылка.Партнеры (управленческая сущность) и элемент СправочникСсылка.Контрагенты (юридическое лицо) с заполненной ссылкой на партнера.Статус (например, «Реализовано», «Принято») и корректной хозяйственной операции.Если требуется перенести документы без создания сложных правил в КД, можно написать внешнюю обработку в 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.
Когда COM-соединение недоступно или работает слишком медленно, данные файловой базы 7.7 можно прочитать напрямую через встроенный объект 1С 8.3 XBase или ADODB-соединение:
1SJOURN.DBF содержит общий журнал документов: даты, номера, флаг проведения и вид документа (идентификатор IDDOC).DH*.DBF содержат реквизиты шапок документов (соответствие номеров файлов именам документов определяется по файлу описания метаданных 1CV7.DD).DT*.DBF содержат строки табличных частей документов.SC*.DBF содержат элементы справочников.Этот вариант исключает любые проблемы совместимости платформ и позволяет быстро перенести только необходимые данные за ограниченное время.