Почему при загрузке метаданных из 1С 7.7 в Конвертацию данных не видны регистры накопления?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

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

Разберем специфику метаданных платформы 1С 7.7

Первое, что мы должны понять: в системе 1С 7.7 не существует разделения на «Регистры накопления» и «Регистры сведений», к которому мы привыкли в версии 8.х. В « семерке» есть просто объект Регистр. Рассмотрим, как это влияет на процесс конвертации. Когда обработка выгрузки (обычно это MD80.ert) формирует XML-описание, она записывает все регистры в общую секцию. При последующей загрузке этого файла в «Конвертацию данных» 2.1, программные механизмы КД пытаются интерпретировать эти объекты. Если в целевой конфигурации (приемнике) вы ожидаете увидеть их именно в узле «Регистры накопления», а КД определила их как-то иначе, в интерфейсе может возникнуть иллюзия их отсутствия.

Проанализируем работу обработки выгрузки MD80.ert

Выясним причину возможного сбоя на этапе экспорта. Обработка MD80.ert является основным инструментом для получения структуры метаданных из 7.7. Посмотрим на критические моменты:

  1. Версия обработки: Это самый важный фактор. Рекомендуем всегда использовать актуальную версию MD80.ert, которая поставляется вместе с релизом конфигурации «Конвертация данных». Ищите её в каталоге шаблонов установки КД. Старые версии могут некорректно помечать типы регистров, из-за чего КД при загрузке просто «пропускает» их.
  2. Логика флажков: В разных версиях обработок (для 8.2, 8.3 и 7.7) логика галочек может отличаться. Рассмотрим ситуацию: если в форме выгрузки метаданных вы видите надпись «Не выгружать регистры», то флаг ставить не нужно. Однако, если выгрузка прошла, а регистров нет, попробуйте изменить подход. Иногда разработчики кастомных обработок инвертируют эту логику.

Проверим содержимое файла выгрузки метаданных

Прежде чем грешить на «Конвертацию данных», проанализируем сам XML-файл, полученный из 1С 7.7. Откроем его любым текстовым редактором (Notepad++, VS Code) и выполним поиск по ключевым словам. Нам нужно убедиться, что блоки с описанием регистров физически присутствуют в файле. Ищите теги, похожие на <Регистр> или <Register>. Если в файле вы видите структуру своих регистров, их измерения и ресурсы, значит, проблема кроется исключительно в процессе загрузки описания в базу КД или в настройках самих правил.

Особенности загрузки метаданных в конфигурацию КД

Рассмотрим подробнее процесс импорта XML в базу «Конвертации данных». Когда мы выбираем файл и нажимаем «Загрузить», открывается форма со списком всех объектов метаданных. Проанализируем типичные ошибки на этом этапе:

  1. Фильтры в дереве объектов: Часто при повторной загрузке метаданных установлен флаг «Загружать только измененные объекты». Если регистры были загружены ранее (возможно, некорректно или в «схлопнутом» виде), они могут не отобразиться в списке обновления. Попробуйте снять все фильтры и принудительно отметить ветку регистров.
  2. Синхронизация по именам: Проверьте, чтобы идентификаторы (имена) регистров в источнике (7.7) и в описании конфигурации в КД полностью совпадали. Любое различие в символах приведет к тому, что КД создаст «новый» объект метаданных или проигнорирует старый.

Регистры как движения документов: важный архитектурный нюанс

Выясним важный момент, который часто путает начинающих разработчиков конвертаций. В 90% случаев регистры накопления не переносятся как самостоятельные объекты через ПВД (Правила выгрузки данных) и ПКО (Правила конвертации объектов). В системе 1С 8.х регистры — это движения документов.

Посмотрим, как правильно настроить их перенос:

  1. Перейдите в ПКО конкретного документа-регистратора (например, «Реализация»).
  2. Откройте закладку «Движения».
  3. Именно здесь должен появиться ваш регистр. Если его там нет, значит, в загруженных метаданных не прописана связь: какой документ является регистратором для данного регистра.

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

Специфика конфигурации «Альфа-Авто»

Поскольку целевой конфигурацией является «Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ», проанализируем её особенности. Данное решение сильно кастомизировано. Некоторые регистры в нем могут иметь специфические свойства, которые КД интерпретирует как «служебные». Если регистры упорно не появляются в списке ПКО, проверьте, не помечены ли они в приемнике как исключенные из миграции.

Принудительное создание метаданных («Грязный хак»)

Если автоматика бессильна, но вы точно знаете, что регистр в базе есть, рассмотрим метод ручного добавления. В конфигурации КД все метаданные хранятся в обычных справочниках. Вы можете:

  1. Зайти в справочник «Объекты метаданных» для вашей конфигурации-источника.
  2. Вручную создать новый элемент.
  3. Указать тип «Регистр накопления» (или просто «Регистр»).
  4. Критически важно: Имя объекта (идентификатор) должно быть в точности таким же, как оно прописано в конфигураторе 1С 7.7.

После этого объект станет доступен для выбора в правилах, и, если в XML-файле данных при обмене будут теги с этим именем, КД сможет их подцепить.

Как переносить остатки из регистров 7.7?

Разберем ситуацию, если ваша задача — не движения документов, а именно перенос остатков на дату. В этом случае регистры источника используются как источник данных, но в приемнике (Альфа-Авто) данные должны попасть в документ «Ввод остатков» (или аналогичный).

Пример алгоритма действий:


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

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

Резюме

Подводя итог, проанализируем основные причины «исчезновения» регистров: это либо использование устаревшей версии MD80.ert, либо некорректная настройка фильтров при загрузке XML в базу КД, либо непонимание того, что регистры в КД настраиваются внутри движений документов. Уделите внимание проверке связей «Регистратор — Регистр» в файле описания, и проблема будет решена.

← На главную