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