|
Назад
Содержание
Вперед
Аналоги, предшественники и идейные вдохновители.
Сборка/разборка 1cv7.md.
Итак, перед нами стоит задача преобразовать файл 1cv7.md в набор файликов,
которые можно бы было сунуть в репозиторий. Кроме того, мы должны уметь собрать
1cv7.md из разрозненных кусочков. В принципе, задача довольно проста:
структура файла конфигурации давно известна, и инструментальные средства для
подобных преобразований имеются в количестве. Начать, естественно, нужно с
плагина DocBrowser
для FAR Manager и
внешней компоненты compound.dll Константина
Волкова AKA Reminder. Так же нельзя обойти вниманием разработку
фирмы Гендальф (Конвертор модулей
метаданных), а так же MetaBuilder.
В чем же проблема, зачем понадобилось писать что-то еще? Дело вот в чем.
- Плагин для FAR Manager - штука мощная и в своей нише незаменимая.
Однако она напрочь интерактивная. Автоматизировать с ее помощью какие-либо алгоритмы
не представляется возможным.
- Конвертор модулей Гендальфа обладает весьма ограниченным функционалом. В ней
реализована возможность загрузки-выгрузки только для программных модулей.
Этого, очевидно, недостаточно.
- MetaBuilder выгодно отличается от Гендальфа. Кроме модулей он умеет
работать и с экранными, и с печатными формами. MetaBuilder умеет массу
других вещей, например, он имеет свой встроенный perl интерпретатор,
позволяющий обрабатывать программные модули во время выгрузки/загрузки.
Одной из особенностей MetaBuilder'а является своеобразно построенное
дерево каталогов, полученное после выгрузки. Файлы в нем группируются не
по принадлежности к объекту метаданных, как внутри файла 1cv7.md, а по
функциональному признаку. Модули вместе с модулями, экранные формы - с
экранными формами. Это позволяет присваивать файлам не обезличенные имена
(типа MD Programm text), а соответствующие объекту метаданных. Таким образом
понять, что лежит в файле Modules\SubList\Номенклатура.txt довольно просто:
это модуль формы списка справочника "Номенклатура". (Сравните с аналогичным
SubList\SubList_Number34\WorkBook\MD program text в составе MD).
Однако, у Метабилдера
есть один существенный недостаток. Команда, его написавшая, практикует
групповую разработку достаточно давно. И у них с течением времени сложился
определенный регламент, определенная технология работы, существенным образом
отличающаяся от традиционной. И эта технология, разумеется, нашла свое
отражение в самом Метабилдере. В результате, Метабилдер сам по себе, без
знания технологии, бессмысленен. А передача технологии (читай "обучение")
резонно стоит денег, и немаленьких.
- Compound.dll. Казалось бы, исходя из вышесказанного, чего проще? Взял
свободно распространяемую compound.dll, и пиши, хоть на 1С, хоть на WSH то,
что тебе нужно. Я поначалу так и сделал, однако полученный результат не
устраивал меня по производительности. Выгрузка происходила за разумное
время, а вот загрузка конфигурации размером 6.5 Mb занимала около получаса,
что меня совсем не устраивало. Краткие консультации с Костей Волковым (автор
compound.dll, если кто не знает), подтвердили самые худшие (с моей точки
зрения, разумеется :)) опасения: компонента не оставляет открытым хендлер файла
конфигурации, а для каждой операции открывает/закрывает его заново.
Желающие посмотреть на описанный эффект могут сходить на
Клуб профессионалов 1С
и скачать там Инструменты 1.1.
Назад
Содержание
Вперед
|