|   |   | 
| 
 | магия регистрации внешней компоненты | ☑ | ||
|---|---|---|---|---|
| 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 - все становится работоспособным | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |