Автоматическая проверка Data Dump (выгрузка из сервиса) на совместимость с метаданными необходимой конфигурации


Проверка выгрузки из сервиса DataDump на соответствие метаданным во избежание ошибок при загрузке.

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

Текст ошибки может начинаться с фразы "При загрузке данных произошла ошибка: Ошибка при чтении данных из файла" и включать фразу "Отсутствует отображение для типа" и далее идет описание типа, которого нет в вашей конфигурации и много букв еще. И если вы загружаете как положено — в тот же релиз, из которого была сделана выгрузка, то ошибка может появиться потому, что в исходной базе были не типовые объекты. А если выгрузка была сделана не из 1С-ного фреша, а из какого-либо другого сервиса, в котором его авторы внесли свои подсистемы в типовые конфигурации, то такое вполне может произойти. Я с таким часто сталкиваюсь. В таком случае можно распаковать архив с дампом, найти нужный файл xml (его наименование обычно сообщается в тексте ошибки), и удалить лишние узлы. Но если проблемных мест много, то эту процедуру можно повторять много раз. Каждая загрузка дампа занимает немало времени (зависит от его размера конечно) и в итоге можно заниматься этим долго.

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

Таким образом можно сразу исправить все проблемные места.

Выложу ее сюда, если кому пригодится. 

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

Как работает

  1. Распакуйте архив выгрузки (по-умолчанию Data_Dump.zip) в какую-либо папку
  2. Откройте данную обработку в базе, в которую собираетесь загружать выгрузку
  3. Для проверки всего дампа выберите папку с распакованной выгрузкой в поле "Выберите каталог с распакованным DataDump ом" и нажмите кнопку Проверить дамп
  4. Для проверки одного файла выберите его в поле "Отдельный файл" и нажмите кнопку проверить файл
  5. Дополнительно можно выбрать метод чтения файлов xml — ЧтениеXML или DOM (я сталкивался с тем, что DOM выедает много памяти на больших файлах, так что возможно и ЧтениеXML когда-то пригодится)
  6. В таблице ниже будут выведены метаданные, которые не были найдены в данной базе и файлы, в которых эти записи находятся. 

Остается только отредактировать эти файлы. Этого обработка сделать пока не может.
Помните, если вы удаляете какой-либо файл из папки Data целиком, то нужно удалить запись о нем в файле PackageContents.xml

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

Обработка работает на управляемом интерфейсе, открывается методом файл->открыть, в дополнительные обработки не добавляется (считаю это лишним), так что у пользователя должны быть права интерактивно открывать внешние обработки

Тестировалась на платформе 8.3.15.1656 в бухгалтерии 3.0.72.72.

Не привязана ни к каким БСП и должна работать в любой конфигурации на платформе 8.3.

Код обработки открыт, можно править и копировать.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *