Персональная страница Федора Езеева
Главная
Download
Ссылки
MS SQL
Обмен данными
Новости
Статьи
О себе
Крупные разделы...
Коллективная разработка
1С++, OOP, XP
FuncTest
FAQ
Структура 1cv7.md
Назад Содержание Вперед

Аналоги, предшественники и идейные вдохновители.

Сборка/разборка 1cv7.md.

Итак, перед нами стоит задача преобразовать файл 1cv7.md в набор файликов, которые можно бы было сунуть в репозиторий. Кроме того, мы должны уметь собрать 1cv7.md из разрозненных кусочков. В принципе, задача довольно проста: структура файла конфигурации давно известна, и инструментальные средства для подобных преобразований имеются в количестве. Начать, естественно, нужно с плагина DocBrowser для FAR Manager и внешней компоненты compound.dll Константина Волкова AKA Reminder. Так же нельзя обойти вниманием разработку фирмы Гендальф (Конвертор модулей метаданных), а так же MetaBuilder.

В чем же проблема, зачем понадобилось писать что-то еще? Дело вот в чем.

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

Назад Содержание Вперед
Rambler's Top100 1C:TOP-100

© 1998-2004 Fedor Ezeev.

Last updated: 2005-09-05