Инструменты изучения метаданных


Для FormsToXML_8.1 есть новая версия (http://avprog.ru/projects/1755/).
РазборФайлаОписания1С 81 по-прежнему актуален.
Изучение формата описания объектов конфигурации - дело сложное. Предлагаю два инструмента, могущих оказать помощь в этом полезном деле.

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

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

Но для этого нужно решить два вопроса
1. Изучить и задокументировать, каким образом 1С хранит описание своих объектов.
2. Реализовать корректную работу с данными описаниями.

Много умных голов начали сразу с пункта 2 и получили вполне осязаемые результаты: плагины к TC, FAR, замечательная система Ei, некий коммерческий инструмент для RMS, v8Unpack. Но в каждой реализации остались белые пятна в отношении полного понимания структуры описания метаданных.

Исходя из этого, мне захотелось сконцентироваться на пункте 1 - создании инструмента для исследования и описания структуры объектов метаданных конфигураций платформы 8.1.

Идея была проста:
1. Получаем на вход описание объекта метаданных в формате 1С "{" и "}" и прочие загадочные штуки
2. Преобразовываем это в формат XML, в котором есть объекты только двух типов контейнеры и данных (elem и data)
Статья (http://avprog.ru/profile/16971/blogs/344/)
3. От частного к общему строим предположение в отношении стуктуры этого XML файла. Данное предположение оформляем в виде XML Schema.
4. Проверяем данное предположение на огромном количестве XML файлов, получая статистическое подтвержедение своей идеи.

В результае этой работы Предположение в формате XML Schema станет достаточно зрелым описанием структуры описания метаданных.

В качестве первой цели были выбраны описания форм конфигурации (т.к. German сказал, что в отношении описания просто объектов метаданных проблем нет, а вот с формами есть вопросы).
Около недели назад была получена первая обработка, позволяющая
1. Обработать разом все формы текущей конфигурации
2. Обработать единичную форму, сохранить предыдущий результать обработки, вызвать утилиту "дифалку" для просмотра изменений в формате описания после изменения некоторых параметров формы.
3. Был создан формат для описания так называемых предположений в отношении стуктуры получаемой информации, НО

НО!

Я сильно-сильно затормозил на последнем этапе:
1. Красивой визуализации XML Schem-ы и
2. пакетной проверки этой схемы в отношеии всех форм конфигурации.

Увы, пока не хватает знаний в XML, поэтому обработка, которая будет выложена еще "сыровата" и не выполняет своего предназначения. Но вдруг кому-то уже будет полезна (Обязательно прочитайте описание по F1) ... Я вернусь к ней как стану умнее в отношении XML и буду уверен, что данный метод вообще может быть кому-либо понят ... Вдруг есть что-то попроще.

В качестве такого более простого решения я выкладываю обработку от Дениса. Задачи у неё такие-же, но заморочек намного-намного меньше. Файл 1С просто закидывается в дерево и дается возможность оставить свой комментарий-предположение о назначении данной части описания.




Файлы обработки:

-