Книга знаний

1С:Предприятие / Приемы программирования / Внешние компоненты

PLUGIN_VKLOADER - загрузка внешних компонент без регистрации в реестре

Этот плагин написан "по мотивам" внешней компоненты VKLOADER Александра Орефкова, и позволяет загружать внешние компоненты 1С:Предприятие 7.7 без необходимости их регистрации в реестре. В отличие от VKLOADER, не требуется изменять/править конфигурацию, и изменения будут восприняты сразу для всех конфигураций. Приложен исходный код - компилятор Delphi 6. Автор статьи: romix | Редакторы: Гений 1С
Последняя редакция №4 от 17.01.08 | История
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), если внешняя компонента уже была загружена на каком-то компьютере с административными правами.

Вы можете один раз сформировать этот файл, и потом уже распространять его вместе со внешней компонентой.

VKLOADER находится здесь: http://openconf.1cpp.ru/vk/vkloader/

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика