gifts2017

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

Опубликовал brix8x (brix8x) в раздел Программирование - Инструментарий

Для FormsToXML_8.1 есть новая версия (http://infostart.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://infostart.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С просто закидывается в дерево и дается возможность оставить свой комментарий-предположение о назначении данной части описания.




Скачать файлы

Наименование Файл Версия Размер
FormsToXML_8.1 108
.1204795138 98,32Kb
25.09.09
108
.1204795138 98,32Kb Бесплатно
РазборФайлаОписания1С 81 (Денис) 100
.1204795714 18,14Kb
25.09.09
100
.1204795714 18,14Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. cs25 (cs25) 06.03.08 14:17
Тема интересная. Стараюсь почаще её посещать на assembla.com !!!
2. Герман (German) 06.03.08 14:37
Да в формах самый затык по 2 причинам:
1. Отсутсвие флаговых идентификаторов (после которого перечислены основные свойства) как например это есть в описании объектов метаданных.
2. Слишком большой объем данных может содержать форма... Форма делится на 25 наборов данных и для того чтобы добраться до например 4 в котором описаны реквизиты формы нужно разобрать на элементы и элементы элементов предыдущие 3 набора(потому что нет флага не на что ориентироваться) один из которых может занимать 99% всех данных формы (описание элементов формы). Идея !!! Пока писал и додумался что именно в этом может помочь XML а не вложенный массив как это было предложено мной ранее......!!!!!!!!