О проекте
Что такое "Открытый Конфигуратор" Как известно, "1С-Предприятие 7.7" продукт хороший и распространенный. И основной его козырь - открытость платформы. Там, где штатных функций програмы не хватает, всегда есть лазейка в виде "Внешних Компонент". А с выходом проекта "Rainbow" возможности ВК стали поистине безграничны. Теперь о грустном. Все эти возможности затрагивают только пользовательскую часть программы. А мы, те кто заставляют работать ВК на радость юзеров, большую часть времени проводим отнюдь не в Предприятии, а в Конфигураторе. А здесь все плачевнее. Штатных методов для загрузки дополнительных модулей нет. Соответственно, нет и никаких стандартных интерфейсов типа ILanguageExtender и т.п. Может, на момент выхода Конфигуратор и удовлетворял програмистов по своим возможностям, но на сегодняшний день их уже явно недостачоно. С целью преодолеть все эти ограничения мной и был задуман этот проект. Первоначально OpenConf предназначался только для загрузки сторонних dll в адресное пространство Конфигуратора. Теперь я планирую несколько расширить его возможности. К их числу относятся: Объектная модель Конфигуратора Позволяет обращатся к объектам Конфигуратора из скриптов и плагинов. Использование ActiveScript Применение технологии ActiveScripting в Конфигуаторе позволяет програмно управлять им с помощью скриптов. Новая архитектура плагинов Позволяет с легкостью писать плагины для Конфигуратора на любом из языков, способных работать с IDispatch и OLE Automation. Простой стандартный метод визуализации плагинов при помощи ActiveX Control Основные принципы работы OpenConf В основу механизма OpenConf положен способ подмены библиотеки config.dll, используемой 1С-Предприятием для работы Конфигуратора. Вместо "родной" config.dll загружается подменная, которая, оказываясь в адресном пространстве процесса, получает возможность выполнять дополнительные действия в программе и в свою очередь загружает "родную" config.dll для обеспечения штатной работы. Основополагающий принцип работы основан на том факте, что большая часть функционала 1С-Предприятия размещена в библиотеках dll, экспортирующих свои функции по именам. Это позволяет воссоздать заголовочные файлы и библиотеки импорта для этих dll и в дальнейшем обращатся к ним также, как это делается самой программой 1С. Впервые такой подход был применен в ВК "Rainbow" Валерия Атаманюка. Немаловажно и то, что сама 1С-Предприятие написана с использованием библиотеки MFC, исходные коды которой открыты. Это позволяет во многих случаях понять принципы работы программы и уточнить заголовки классов, полученных из экспортируемых функций dll 1С-Предприятия. Примечание При реализации методов OpenConf я старался по большей части пользоваться "штатными" функциями 1С, доступными через ее dll. OpenConf не работает напрямую с файлом метаданных, не парсит Main MetaDataStream, не считает CRC и тп. Для выполнения своих действий он просто обращается к "внутренним" функциям 1С. По сути дела, объектная модель OpenConf просто OLE-обертка вокруг C++ объектов 1С. С уважением, Александр Орефков