Имя: Пароль:
1C
1С v8
Ошибка Класс не зарегистрирован
,
0 geka-geka
 
13.06.13
08:55
платформа 8.2.18.96
выдает ошибку в серверном варианте, а в файловом отрабатывает без проблем.
В чем может быть дело? Как исправить?

Ошибка при вызове конструктора (COMObject)
cntr = Новый COMObject("V82.COMConnector");
по причине:
Класс не зарегистрирован
1 geka-geka
 
13.06.13
08:56
управляемые формы
2 geka-geka
 
13.06.13
08:57
В другой конфе на обычных формах отрабатывает и в серверном
3 Jonny_Khomich
 
13.06.13
08:59
4 geka-geka
 
13.06.13
09:07
на сервере нужно регистрировать эту библиотеку?
5 Mafoni
 
13.06.13
09:10
Сервер 1с у тя х32 или х64 ?
6 geka-geka
 
13.06.13
09:10
x64
7 geka-geka
 
13.06.13
09:11
на клиенте x32
8 geka-geka
 
13.06.13
09:12
Regsvr32 «C:\Program Files\1cv82\8.2.18.96\bin\comcntr.dll» на клиенте отработало. не помогло.
«regsvr32 /n /i:user comcntr.dll». пришет ошибку при вызове метода LoadLibrary
9 Defender aka LINN
 
13.06.13
09:20
(8) А при чем тут клиент?
10 geka-geka
 
13.06.13
09:22
(9)не знаю этих тонкостей. нужно на сервере регистрировать?
11 Defender aka LINN
 
13.06.13
09:24
(10) Если ошибка выдается на сервере, то ответ какбе очивиден
12 Mafoni
 
13.06.13
09:35
есть такой нюанс столкнулся недавно
накрапал dll com visible
на клиенте работала на ура (клиент x32)
не сервере в упор не хотело
пришлось делать обертку для своей dll
линка сейчас не упомню
а вот в почту се сохранил выдержку как это сделать


(один умный человек написал маленькую статейку по этому делу, адреса не помню, ниже привожу то что я себе в памятки написал)

Содержание статьи

Например для вызова V82.ComConnector на стороне 64-битного сервера 1С.

Это происходит потому, что 64 битные приложения не могут запускать 32 битные DLL которые активируются при запуске 32 битного COM объекта 1С. Для решения проблемы нужно воспользоваться оберткой COM+ которая являясь 64 битным приложением может взаимодействовать с 32 битными библиотеками.
Для это необходимо выполнить следующие шаги:

1. Запускаем консоль "Службы компонентов" (например: Пуск -> Администрирование -> Службы компонентов.

2. В ветке Приложения COM+ добавляем новое приложение: Создать -> Приложение

3. На вопрос "Установка или создание нового приложения" - выбираем "Создать новое приложение".

4. Имя нового приложения лучше написать чтобы было понятно о чем речь: V8_ComConnector, способ активации - "серверное приложение".

5. Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С.

6. В ветке созданного приложения переходим на ветку "Роли" открываем роль "CreatorOwner" и далее в разделе "Пользователи" создаем пользователя - учетную запись под которой работает сервер 1С.

7. В ветке созданного приложения переходим на ветку "Компоненты" и создаем компонент: Создать -> Компонент

8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную DLL-ку (comcntr.dll)

9. Открываем свойства только что созданного компонента, идем на вкладку "Безопасность", проверяем в списке "Явно установленные для выделенных объектов роли" стоит ли "птичка" напротив роль CreatorOwner - если нет, тогда устанавливаем эту "птичку".

типа все.
13 Mafoni
 
13.06.13
09:37
Если вот этот кусок кода
cntr = Новый COMObject("V82.COMConnector");
ты вызываешь на сервере тогда (12) должно те помочь
2 + 2 = 3.9999999999999999999999999999999...