PLUGIN_VKLOADER - загрузка внешних компонент без регистрации в реестреЭтот плагин написан "по мотивам" внешней компоненты VKLOADER Александра Орефкова,
и позволяет загружать внешние компоненты 1С:Предприятие 7.7 без необходимости
их регистрации в реестре. В отличие от VKLOADER, не требуется изменять/править конфигурацию,
и изменения будут восприняты сразу для всех конфигураций. Приложен исходный код - компилятор Delphi 6.
| | Автор статьи: Последняя редакция №1 от 10.07.07 URL: http://kb.mista.ru/article.php?id=567 | |
Файл для скачивания:
http://x-romix.narod.ru/PLUGIN_VKLOADER.rar
(скачивать ЛЕВОЙ кнопкой мыши, размер ~ 89К)
Установка и удаление плагина
Установка и удаление плагина описаны в папке Patch дистрибутива.
Где хранятся записи об объекте внешней компоненты
Идентификатор CLSID компоненты хранится в одноименном файле с расширением
.clsid. При затруднениях вы можете попросить более опытного пользователя
сформировать этот файл. Положите этот файл в ту же папку, где лежит внешняя
компонента. При установленном патче информация об объектах внешней компоненты
будет браться из этого файла, а не из реестра.
Проверка плагина
Для примера я создал внешнюю компоненту vk_sleep.dll - в качестве демонстрации своей активности она "умеет" делать паузу (задержку в миллисекундах) и показывать сообщения в трее.
Тот же принцип вы можете применить для загрузки любой внешней компоненты.
В той же папке, что и внешняя компонента, лежит одноименный файл vk_sleep.clsid.
Конфигурация, которая тестирует внешнюю компоненту, находится в папке Test_77.
При установленном патче, информация о внешней компоненте берется не из реестра, а из файла vk_sleep.clsid. Соответственно, права на доступ к системному реестру теперь пользователю не нужны. Если такого файла рядом со внешней компонентой нет, то 1С ведет себя штатно: пытается читать
записи об объекте внешней компоненты из реестра.
В качестве проверки я удалял из реестра записи, содержащие vk_sleep (их две), и пытался запускать тестовую конфигурацию под "бесправным" пользователем. При наличии патча и vk_sleep.clsid 1С успешно загружала внешнюю компоненту.
Как сформировать файл *.clsid
В нашем примере, этот файл (vk_sleep.clsid) содержит одну строку
AddIn.vk_sleep={AFC8496E-61A8-4F14-B2DB-AAD055ABC372}
Строк такого вида может быть больше одной, если компонента поддерживает более одного объекта.
Здесь AddIn.vk_sleep - это так называемый ProgID, который мы указываем при создании объекта внешней компоненты (в СоздатьОбъект()).
А идентификатор {AFC8496E-61A8-4F14-B2DB-AAD055ABC372} - так называемый CLSID - вы можете отыскать поиском в реестре по подстроке "AddIn.vk_sleep" (например, при помощи программы Regedit.exe по нажатию Ctrl-F), если внешняя компонента уже была загружена на каком-то компьютере с административными правами.
Вы можете один раз сформировать этот файл, и потом уже распространять его вместе со внешней компонентой.
|