![]() |
|
магия регистрации внешней компоненты | ☑ | ||
---|---|---|---|---|
0
vasbur
17.04.14
✎
09:56
|
Есть внешняя COM-компонента, которая используется в обработке 1С, которую мы отдаем клиентам. Периодически у некоторых клиентов возникают проблемы с ее регистрацие, один из таких случаев удалось вопроизвести в лабораторых условиях, и я сейчас пытаюсь разобратьчся в нем.
так, дано: Windows Server 2008, 32bit, UAC включен. 1С 8.2, толстый клиент. При запуске выполняется следующий код: ЗагрузитьВнешнююКомпоненту(ИмяФайла); АПИObject_ = Новый("AddIn.DiadocInvoiceAPI"); АПИObject = АПИObject_.CreateObject(); АПИObject.TestConnection() Первые три строчки отрабатываются, а на четвертой возникает ошибка. При этом, АПИObject имеет тип OLE-Объекта После этого берем и регистрируем компоненту через regsvr32. После этого все работает. Анализ отличий в реестре показал, что при регистрации компоненты через 1С не добавляются записи в HKEY_CURRENT_USER/Software/Classes/Interface. А при регистрации через regsrv32 - добавляются |
|||
1
vasbur
17.04.14
✎
09:57
|
вопрос - как сделать так, чтобы встроенная регистрация компоненты работала правильно, и где, вообще, копать
|
|||
2
hhhh
17.04.14
✎
10:05
|
(0) а где тут в 1с вы ее регистрируете?
|
|||
3
vasbur
17.04.14
✎
10:07
|
(2) метод "ЗагрузитьВнешнююКомпоненту" регистрирует компоненту.
В 99% случаяъ это так, но вот итогда - это не совсем так. |
|||
4
PLUT
17.04.14
✎
10:14
|
(3) наверно UAC это остальные 47% случаев
|
|||
5
Torquader
17.04.14
✎
10:17
|
(4) Ну да, для понимания нужно запустить 1С из под администратора и посмотреть, что изменится в реестре.
Как вариант, вставить строку на проверку наличия записи в реестре и, если её нет, то попросить пользователя запустить файл регистрации от администратора. |
|||
6
vasbur
17.04.14
✎
10:21
|
(4) все равно странно - получается, что при UAC компоненту 1С регистрирует, но криво. Настолько криво, что если потом UAC отключить, то повторная заргузка компоненты средставми 1С не спасает
|
|||
7
vasbur
17.04.14
✎
10:22
|
(5) в реестре смотреть - это костыльно как-то.
|
|||
8
Мыш
17.04.14
✎
10:47
|
Запустить 1С от имени администратора
|
|||
9
vasbur
17.04.14
✎
11:43
|
(8) невозможно же залезть в голову каждого пользователя.
Пользователи делают тоЮ что им хочется. задача разработчика - сделать повежение программы понятным |
|||
10
YF
17.04.14
✎
11:44
|
(9) Отключить UAC
|
|||
11
vasbur
17.04.14
✎
11:52
|
(10) Я понимаю, если бы компонента при включенном UAC выдавала ошибку при регистрации - тогда эту ситуацию можно было бы обрабатывать интерфейсно.
Ко компонента загружается, только косячно |
|||
12
vasbur
18.04.14
✎
10:58
|
Орефков и Чебуратор, как я понимаю, в отпуске :)
|
|||
13
vasbur
21.04.14
✎
13:58
|
Эксперименты показали, что UAC не при чем.
Даже при отключенном UAC и запуске из под админа - внутренними средствами 1с компонента нормально не загружается. При этом, после resvr32 - все становится работоспособным |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |