|
8.2 и COM-объект | ☑ | ||
---|---|---|---|---|
0
greenzmo
11.08.11
✎
18:22
|
Всем доброго времени суток!
У меня следующая история: Около года назад наша компания силами фрилансера разработала внешнюю компоненту для чтения данных с com-порта. Моя задача как 1С-ника состояла в том, чтобы написать некий код по взаимодействию с методами этой компоненты в 1С - что я благополучно и сделал. Фрилансер сделал установщик компоненты, он ее регистрировал в реестре Винды, а я ее вызывал в коде с помощью: ПодключенныйОбъект = Новый ComОбъект(ProgIDКомпоненты) Все работало прекрасно. Недавно, клиент захотел приобрести у нас эту компоненту. Я перед отгрузкой решил ее протестировать - и ВОТ ТЕ РАЗ - НЕ РАБОТАЕТ!!! Фрилансер в отпуске, я в dll вообще ни шарю ((( Но руководство поставило задачу разобраться что к чему - клиент, оказывается, уже заплатил!... Перестанавливал компоненту - не помогает, устанавливал на другой комп - таже фигня. Полез в код: вместо ПодключенныйОбъект = Новый ComОбъект(ProgIDКомпоненты) написал ПодключитьВнешнююКомпоненту(ProgIDКомпоненты) - система НЕ ругнулась. Потом написал ПодключенныйОбъект = Новый(ProgIDКомпоненты) - система СНОВА РУГАЕТСЯ! Вообщем, не могу понять, в чем проблема - в компоненте (ее никто не трогал с момента написания) или в 1С-ке :( Буду рад любым советам по этому поводу! P.S. Как, по каким стандартам и через какие помощники пишутся компоненты .dll Я НЕ в курсе, но видимо придется разбираться... |
|||
1
БибиГон
11.08.11
✎
18:52
|
*система СНОВА РУГАЕТСЯ
как ругается хоть? |
|||
2
Fram
11.08.11
✎
18:56
|
(0) установи под правами админа. а для уверенности еще UAC отключи перед установкой
|
|||
3
greenzmo
11.08.11
✎
19:07
|
(1) уходит в ветку исключения конструкции Попытка Исключение КонецПопытки
(2) устанавливал по админскими правами. У меня XP стоит :) |
|||
4
Fragster
гуру
11.08.11
✎
19:08
|
пц. Сообщить(описаниеошибки());
|
|||
5
zladenuw
11.08.11
✎
19:49
|
а может ее нужно зарегать что бы 1с увидела ? а ?
|
|||
6
zladenuw
11.08.11
✎
19:49
|
Новый ComОбъект вроде как для зарегистрированных компонентов.
|
|||
7
Fram
11.08.11
✎
20:05
|
(5) читай (0) внимательно "Фрилансер сделал установщик компоненты, он ее регистрировал в реестре Винды..."
|
|||
8
smaharbA
11.08.11
✎
20:20
|
может позырить в реестре сначала
|
|||
9
Tahallus
11.08.11
✎
20:40
|
(3) походу ты еще и в 1С плаваешь. а убрать попытку и увидеть не судьба? или сделать как в (4)
|
|||
10
greenzmo
12.08.11
✎
10:50
|
(9) У вас мозг на тело, случаем, не давит?
|
|||
11
greenzmo
12.08.11
✎
11:03
|
(4) Да, не догадался:
В описании ошибки пишет "Класс не зарегистрирован" НО, в реестре он ЕСТЬ - в ветке Software -> Classes! Я также пробовал регистрировать вручную: regasm регистрирует - с параметром /tlb без ошибок, а если добавить еще параметр /codebase, то выводит след. сообщение: RegAsm : warning RA0000 : Регистрация сборки без подписи с использованием параметра /codebase может вызвать конфликт данной сборки с другими приложениями, которые могут быть установлены на том же компьютере. Параметр /codebase предназначен только для сборок с подписями. Присвойте сборке строгое имя и повторите регистрацию. regsrv32 пишет, что dll зарегистрирована, но найти точку входа для DllRegisterServer не удалось - и потом пишет, что зарегистрировать этот файл невозможно. |
|||
12
hhhh
12.08.11
✎
11:16
|
(11) но, кому нужно это твое тестирование? ОТгрузи ее клиенту и не парься. Это вообще не твой участок.
|
|||
13
Tahallus
12.08.11
✎
11:33
|
(10) нет не давит.
(11) А разработки случаем не оставлял еще какой нибудь reg файл, потому что ошибка "warning RA0000" это не выставленный ComVisible в true , и значит через regasm его не как не установить. |
|||
14
Tahallus
12.08.11
✎
11:34
|
(13) разработки = разработчик
|
|||
15
greenzmo
12.08.11
✎
11:43
|
(13) Хорошо, а то я подумал... :)
Нет, разработчик оставил только Setup и пример регистрации с помощью regasm с кодами /codebase и /tlb. Причем, как я писал, без кода /codebase регистрируется без ошибки "warning RA0000". И к тому же, я же вижу в реестре этот класс! И компонента год назад работала! Думаю грешить на Винду... |
|||
16
greenzmo
12.08.11
✎
11:44
|
(12) Это не мой принцип работы! :)
|
|||
17
Alex375
12.08.11
✎
12:04
|
Попробуй еще dll положить в bin своей 1С-ки
|
|||
18
hhhh
12.08.11
✎
12:04
|
(16) а как же ты клиентам типовые продаешь с твоими принципами? Ведь если их установить и протестировать, то возникнет точно такая же ситуация.
|
|||
19
greenzmo
12.08.11
✎
12:19
|
(17) не помогает
(18) в смысле? |
|||
20
Tahallus
12.08.11
✎
14:10
|
Попробуй поставить на другом компа где ранее она не стояла.
|
|||
21
greenzmo
12.08.11
✎
17:06
|
(20) Делал на трех машинах - никакого результата
|
|||
22
Serginio1
12.08.11
✎
18:51
|
(15) Это предупреждение, смотри зарегестрировлся ли класс в регистре и есть ли там параметр CodeBase. Посмотри права на папку. RegAsm должен соответствовать версии фреймворка компоненты
|
|||
23
Serginio1
12.08.11
✎
18:53
|
Плюс возможно нужно положить дополнительные библиотеки
|
|||
24
greenzmo
18.08.11
✎
18:04
|
(22) Класс зарегистрирован и параметр CodeBase есть. Поиском прога RegAsm обнаруживается только в папке с версией 2.0 (папка v2.0.50727). Есть также версии 3.0 и 3.5, но проги там НЕТ. Версию 3.5 требует установщик компоненты при инсталяции
ПРОИЗОШЛО НЕЧТО ИНТЕРЕСНОЕ! Я изменил системную дату компьютера на год раньше и О ЧУДО - COM-объект СОЗДАН!!! |
|||
25
EvgeniuXP
18.08.11
✎
18:16
|
(0) зарегистрируй библиотечку...
|
|||
26
Serginio1
18.08.11
✎
18:18
|
Ну так свакай нужный фреймворк
|
|||
27
Serginio1
18.08.11
✎
18:23
|
Чудес не бывает. Посмотрел бы библиотеку рефлектором. Кстати а исходники то он вам оставил?
|
|||
28
greenzmo
18.08.11
✎
18:30
|
(26) что значит свакай?
(27) что за рефлектор? :) Исходников нет - только setup. |
|||
29
Serginio1
18.08.11
✎
18:44
|
(28) Скачай. Рефлектор это Reflector.exe им можно посмотреть исходный код твоей библиотеки.
Кроме CodeBase есть еще RuntimeVersion. Но проще изучить исходники через рефлектор |
|||
30
GoldenDawn
18.08.11
✎
18:55
|
(0)пипец...
если нет исходника + компилятора и не работает заявленный интерфес шли своё начальство лесом пусть танцуют с бубном сами |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |