Моя утилита - RegsvrEx - позволяет частично обойти эту проблему. А именно: регистрировать компоненту не для системы в целом, а только для текущего пользователя. Естественно, в этом случае под остальными пользователями компонента работать не будет (пока ее и под ними тоже не зарегистрировать), но зато для данной операции пользовательских прав достаточно.
Утилита отличается от regsvr32 наличием дополнительного ключа запуска (остальные ключи сохранены) /c, который и включает режим регистрации под пользователем.
Приблизительный пример использования. Нужно создать объект Cool.object из библиотеки cool.ocx. И библиотека, и regsvrex лежат в каталоге базы.
Попытка Объект=СоздатьОбъект("cool.object"); Исключение ИмяДЛЛ=КаталогИБ()+"cool.ocx"; КомандаСистемы(КаталогИБ()+"regsvrex /s /c "+ИмяДЛЛ); Попытка Объект=СоздатьОбъект("cool.object"); Исключение Сообщить("Таки не удалося :("); КонецПопытки; КонецПопытки;
Кроме того, таким же образом ( КомандаСистемы(КаталогИБ()+"regsvrex /s /c "+ИмяДЛЛ); ) можно регистрировать и внешние компонеты 1С перед их "загрузкой". Не все правда, v7plus например прокатит, а 1С++ - нет.