Имя: Пароль:
1C
1С v8
Требуется регистрация COM.Connector вручную. Или есть другой выход ?
0 ЧессМастер
 
16.06.20
10:22
Всем доброе время суток !

Ситуация следующая.

Рабочая машина Win10 64 разрядная.

Установлена платформа 8.3.8.2322 32 разрядная (64 разрядной версии у этой платформы нет, она появилась только с версии 8.3.9.2033).

Регистрация comcntr.dll проведена командой
C:\Windows\SysWOW64\regsvr32 "C:\Program Files (x86)\1cv8\8.3.8.2322\bin\comcntr.dll"

Но при создании V83.COMConnector тем не менее валится ошибка "класс не зарегистрирован".

При использовании на этой же машине релиза 8.3.15.1830 и COM объекта этой же версии все работало отлично - на машине стояли релизы и 64 бит и 32 бит, comcntr.dll от обоих релизов были зарегистрированы.

Сейчас релиз 8.3.15.1830 удален, регистрация comcntr.dll от этого релиза снята.


Как я понимаю проблема в следующем - поскольку версия виды машины 64 бит, то при создании COM объекта используется 64 битная версия 1С (и соответственно требуется регистрация comcntr.dll именно от 64 битной версии платформы).

Но проблема в том что у версии 8.3.8.2322 64 битной версии нет.


Можно ли как то решить эту проблему ? Поднимать версию плтформы на хотя бы версию 8.3.9.2033 (где есть 64 битный клиент) проблемно в связи с большим количеством работающих пользователей и тем чт это рабочий сервер.
1 D_E_S_131
 
16.06.20
10:37
Так вроде же нельзя иметь одновременно 2 зарегистрированных comcntr.dll от разных версий.
2 sitex
 
naïve
16.06.20
10:40
(0) Проблему решить отказаться от Com.
3 ЧессМастер
 
16.06.20
11:04
(1) У меня одна зарегистрирована компонента.

Просто под версией 8.3.15.1830 проблем при использовании с COM не было а при 8.3.8.2322 они есть.

Когда потребовалась компонента для 8.3.8.2322 я регистрацию от 8.3.15.1830 снял.
4 ptiz
 
16.06.20
11:07
(0) "поскольку версия виды машины 64 бит, то при создании COM объекта используется 64 битная версия 1С" - нет! Просто ты, видимо, вызываешь создание COM-объекта из 64-битного приложения.
5 ChMikle
 
16.06.20
11:07
Можно, на инфостате статья была. Схожая ситуация была , админ 2 создал и все летает
6 ChMikle
 
16.06.20
11:13
7 mikecool
 
16.06.20
11:16
в реестре емнип две ветки для 32 и 64 бит
8 ЧессМастер
 
16.06.20
11:21
(4) "Просто ты, видимо, вызываешь создание COM-объекта из 64-битного приложения"

Я в 1С работаю 32 битным клиентом 8.3.8.2322. 64 битного его нет.

Вызываю создание COM - получаю ошибку что класс не зарегистрирован. При том что comcntr.dll от релиза 8.3.8.2322 зарегистрирована.

Когда надо было создать COM при работе на релизе 8.3.15.1830 таких проблем не было. При том что на машине стояло два релиза 8.3.15.1830 (32 и 64 битный), comcntr.dll от обоих были зарегистрированы.
9 ЧессМастер
 
16.06.20
11:22
Сисадмин попытался создать регистрацию вручную. Не получилось. Написали письмо в 1С следующего содержания :

"Мы с помощью компоненты V83.Connect пытаемся получить данный из другой базы и нам выдает ошибку «-2147221164(0x80040154): Класс не зарегистрирован». Успешная регистрация через команду «regsvr32 "C:\Program Files (x86)\1cv8\8.3.8.2322\bin\comcntr.dll"» результата не дает. В интернете пишут что нужно зарегистрировать компонент вручную через оснастку «Служба компонентов», но в свойствах приложения COM+ (V83COMConnector) во вкладке безопасность мне не дает установить галочку «Применить политику программных ограничений – Уровень ограничений неограниченный», пишет «У вас нет разрешений на выполнение запрошенного действия…» Я это делаю с правами доменного администратора. Не могу понять где установить права".
10 ptiz
 
16.06.20
11:29
(8) "Вызываю создание COM" - так ОТКУДА вызываешь? Где создаешь объект, в какой программе?
11 VladZ
 
16.06.20
11:43
Выход есть: отказаться от Com.
12 ChMikle
 
16.06.20
11:48
(9) статью почитайте
13 ЧессМастер
 
16.06.20
12:15
(10) На клиенте. Который 8.3.8.2322.
14 ptiz
 
16.06.20
12:31
(13) Если код создания ком-объекта выполняется на 32-разрядном клиенте, то проблем быть не должно. Если объект создается на сервере 1С - смотри и регистрацию компоненты на сервере.
15 d4rkmesa
 
16.06.20
13:52
(6) Это работает только с отдельными платформами, например, с 8.3.12 и 8.3.15 не сработало, т.к. они разные dll тянут. Правильный совет в (2) .
16 ЧессМастер
 
16.06.20
15:01
(14) "Если код создания ком-объекта выполняется на 32-разрядном клиенте, то проблем быть не должно"

А они есть.

Самое странное что при использовании 8.3.15.1830 таких проблем (ошибка при создании COM на толстом клиента) не было.
А на 8.3.8.2322 они есть.
17 ЧессМастер
 
16.06.20
15:08
(14) "Если объект создается на сервере 1С - смотри и регистрацию компоненты на сервере"

А на сервере этот файл comcntr.dll есть только в 32 битном варианте (поскольку 64 разрядный появился только с 8.3.9.2033).

Ты хочешь сказать этот фокус сработает - вызов с клиента серверного модуля где будет создан COM объект ?
18 ЧессМастер
 
16.06.20
16:00
(14) Сделал серверный модуль. Создание COMConnector делаю в функции этого модуля.

На сервере comcntr.dll зарегистрирована.

Та же самая ошибка.

Такое впечатление что это просто глюки релиза 8.3.8.2322

Ну не может быть так чтобы на одном релизе все работает а на другом нет при любых плясках с бубномм .
19 ChMikle
 
17.06.20
09:03
(15) после этой статьи работало 8.3.9. и 8.3.16 :)
20 Franchiser
 
гуру
17.06.20
09:41
(19) сейчас проверил, а если по нормальному только 1 комконнектор регистрировать, то должно что либо быть в com+? В реестре инфа есть, а в компонентах приложения ничего про v8 com connector нет, есть только в dcom про v8 application.
21 ЧессМастер
 
17.06.20
12:21
(19) Пробовали то что написано в этой статье - не получилось.
22 ChMikle
 
17.06.20
12:24
(21) посмотрите , там 2 коннектора создают и при подключении выбирают , у нас тоже по началу не получалось . Но у меня админ - профессионал, он если взялся , то сделает .К сожалению, подробности не знаю , у нас Бит-Аренда , она поддерживает графику только не выше 8.3.9 и бух-ия на 8.3.16 . так что дело за вашим администратором
23 ЧессМастер
 
17.06.20
12:30
(22) Можешь подсказать почему при 8.3.8.2322 эта схема не работает, а при 8.3.15.1830 работает ?

Винда 64 разрядная требует для создания COM объекта в обязательном порядке наличия на машине 64 разрядной платформы ?

И по причине того что в 8.3.8.2322 64 разрядного клиента нет (он появился только с 8.3.9) эти проблемы и выскакивают.
24 ChMikle
 
17.06.20
12:44
(23) не могу , я так глубоко не копаю , но если запускается платформа 8.3.8.2322 на этом сервере , то способ должен быть.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс