PDA

Просмотр полной версии : COM-интеграция dll



digital97
06.09.2018, 08:42
Доброго времени суток, прошу помощи у знатоков 1С. У меня есть некая dll(которая проверена и работает корректно) и есть код внешней обработки, который эту dll использует. Проект должен быть рабочий, мне нужно лишь настроить соединение, но в этом я не преуспел, поскольку это мое первое мини-знакомство с 1с. Проблема заключается в том, что при попытке создания COM-объекта возникает ошибка:


Ошибка при вызове конструктора (COMОбъект)
gth = Новый COMОбъект("Library.ComSdk.Service");
по причине:
-2147221164(0x80040154): Class not registered
При повторном нажатии на кнопку и повторном выполнении кода появляется другая ошибка:


Ошибка при вызове конструктора (COMОбъект)
gth = Новый COMОбъект("Library.ComSdk.Service");
по причине:
-2147024894(0x80070002): The system cannot find the file specified.
dll зарегистрирована через regasm. Перепробовал много всего, и comcntr заново регистрировал через regsvr, и пытался компоненту новую создать, ничего не помогает. В интернете много способов решения проблемы, но почему-то ничего не помогло, может кто-то поможет сузить параметры поиска решения. База находится на локальном компьютере, версия 1с 8.3.9.2033. Выполняю я все это так: создал базу, поставил в настройках галочку для запуска приложения с обычными формами, поскольку с управляемыми формами оно не работает, затем жму отладку и открываю обработку. Может где-то в этих действиях я что-то делаю не так.

avm3110
07.09.2018, 15:51
База находится на локальном компьютере, версия 1с 8.3.9.2033.

Не нужно экспериментировать на старых релизах платформы - 8.3.9 по нОнишним временам это на "следы мамонта". ставьте последний релиз 8.3.12


Проблема заключается в том, что при попытке создания COM-объекта возникает ошибка:
шибка при вызове конструктора (COMОбъект)
gth = Новый COMОбъект("Library.ComSdk.Service");
по причине:
-2147221164(0x80040154): Class not registered

Ну-у-у.. это сообщение говорит, что у вас 1Ска не может найти такой com-объект "Library.ComSdk.Service"

Зайдите в реестр и проверьте, есть ли там такой com

возможно нет прав на эту dll. Так например, чтобы 1Ска могла работать по com с другой 1Ской нужно регистрировать dll только под учеткой администратора.

И кстати... я всегда регистрирую свою компоненту comcntr.dll через системную утилиту regsvr32