V83.COMConnector

1. starjevschik 09.09.24 15:50 Сейчас в теме
Есть сервер, на нем MS SQL и много разных баз. В частности есть УТ 10 (обычные формы) и кучка БП 3 (управляемые формы). Также есть много обработок, которые из одной базы в другую лезут через V83.COMConnector.
Поставили новую платформу 8.3.24.1667.
Зарегистрировали dll - без ошибок, успешно, написали Винды.
Картина теперь такая:
в УТ 10.3
Новый COMОбъект("V83.COMConnector") 

работает без проблем, все создается, коннектится, красота.
В БП 3
&НаСервере
Новый COMОбъект("V83.COMConnector")

валится с ошибкой "Класс не зарегистрирован".
Сервер физически один, на нем все базы и пользователи по RDP.
Кто-нибудь может объяснить, что надо сделать, чтобы это все работало. Или хотя бы что сказать админу. С прошлой версией платформы (23 какая-то) все работало без проблем везде.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 09.09.24 16:08 Сейчас в теме
(1) Разрядность клиента и сервера разные. Через COM+ настройте. Или вернитесь на 32-бит клиент
3. starjevschik 09.09.24 16:15 Сейчас в теме
(2) Да! сервер 64х
Клиентские я запускаю разные, и 32 и 64, они оба есть. И в обоих ошибка.
Через COM+ - это во всех "управляемых" конфигурациях надо будет новый COM объект вместо штатного прописывать?
Как же оно там же раньше работало...
4. RustamZz 09.09.24 16:25 Сейчас в теме
(3) Нет это обертка которая позволяет вызывать из 32-х 64-х dll или наоборот. Если 64-х битный сервер оставьте 64-х битного клиента, ye и нужно зарегить 64-х битную dll.
5. starjevschik 09.09.24 16:53 Сейчас в теме
(4) ладно, спасибо, попробую так сделать
все равно не понимаю, как раньше-то было ) работало же все само собой, вроде те же разрядности. Попробую...
6. AlexGoldT 09.09.24 19:40 Сейчас в теме
(5) посмотрите в реестре (на сервере) ссылки на путь на comcntr.dll - при обновлении платформ бывает рассогласование библиотек и их типов - ссылки на разные редакции получаются. В этом случае спасает ручная корректировка пути в реестре.
7. KOTzilla 22 10.09.24 14:04 Сейчас в теме
(5) ИМХО отвалившийся СОМ, после обновления платформы, это прям БАЗА. Только из-за этого на одной из работ все переписывал под http сервисы. Самый железный способ - это создавать в ручную, через службы компонентов.

Вот не плохая статья с описанием
https://infostart.ru/1c/articles/1671080/
8. starjevschik 11.09.24 08:49 Сейчас в теме
(4)
(7)
вопрос остается. COM+ у меня не делается с ошибкой "Произошла ошибка 80070005". Это недостаточно прав, но поскольку права админские полные и все запускается "от имени администратора", то понять это не получается. Что ей нужно??

Провел еще исследования - на БП процедура &НаКлиенте создает этот объект V83.ComConnector без проблем, &НаСервере - нет. Что бы еще сделать?...
Прикрепленные файлы:
9. пользователь 11.09.24 08:55
Сообщение было скрыто модератором.
...
10. starjevschik 11.09.24 10:18 Сейчас в теме
(9) спасибо. Поставил обработку ИР, серьезная вещь.
Но эффект все тот же. Создать/удалить - класс не зарегистрирован. Зарегистрировать - все успешно. Все компоненты и СОМ+ она видит, проверить работу объектов -
"Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V83.COMConnector.1): Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя"

=== тут вот непонятно, запуск всего этого "от имени администратора", какой пароль какого пользователя?
Как итог по-прежнему на клиенте работает, на сервере нет.
18. tormozit 7223 25.09.24 07:13 Сейчас в теме
(10) Справа сверху есть проверочная строка соединения.
11. KOTzilla 22 12.09.24 07:12 Сейчас в теме
(8) Если смотреть инструкцию выше, там есть пункт где определяется роль CreatorOwner и к ней добавляются пользователи. У вас какой пользователь добавлен?

Можно попробовать помимо существующей учетной записи, добавил туда System и учетную запись под которой работает сервер 1С.
14. wertep 24 12.09.24 11:20 Сейчас в теме
(1)
Зарегистрировали dll - без ошибок, успешно, написали Винды.

В УТ 10 все выполняется на клиенте, и на клиенте dll зарегистрирована и работает.
В БП 3 как видно код выполняется на сервере, и на сервере dll не зарегистрирована.

Нужно выполнить регистрацию dll на сервере. Причем из каталога "Programm Files\....", в который установлен 64-бит сервер.
12. novohatko 12.09.24 07:48 Сейчас в теме
Все проше, сам вчера мучался и нашел простой способ.
Создаем bat файл в C:\Program Files\1cv8\8.3._\bin, ниже текст:

@set CS=CScript //nologo %TMP%\%~n0.vbs /REALTIME^>nul^ & del /Q %TMP%\%~n0.vbs&CLS
@ECHO off
title %~n0
SET CX=CLS^&EXIT
SET BS=^>%TMP%\%~n0.vbs
SET G=GOTO
SET H=shell&fsutil>NUL
IF %ERRORLEVEL% EQU 0 (
GOTO 2
) ELSE (
if not "%minimized%"=="" GOTO 1
)
SET minimized=true & start /min cmd /C "%~dpnx0"&%CX%
:1
ECHO SET %H%=CreateObject("%H%.Application"):%H%.%H%Execute "%~dpnx0",,"%CD%", "runas", 1 : SET %H%=nothing%BS%&%CS%&%CX%
:2
ECHO %~dpnx0 & regsvr32.exe /i:user "%~dp0comcntr.dll"&%CX%

Сохраняем. Запускаем от администратора. Перезапускаем агент сервера 1с и радуемся.
VyacheslavShilov; +1 Ответить
13. user1936660 12.09.24 08:53 Сейчас в теме
(12)
нашел простой способ
Твой батник очень похож на вирус.
Что он делает? Расскажи пожалуйста про каждую строку.
15. lefthander 12.09.24 11:35 Сейчас в теме
(13) Вам не надо запускать этот батник, если Вы не можете его прочитать. ;)
16. AlexGoldT 12.09.24 14:33 Сейчас в теме
Мне такие батники не помогали. Спасала только ручная правка путей в реестре. В реестре при обновлении образовались рудименты, которые стандартные регистрации (разрегистрации) не убирали.
Вот фрагмент переписки с поддержкой 1С:
Здравствуйте,

Удаляйте все следы (ветки 98AC3B5B-5323-418F-8F07-E32F231D2393). В какой-то момент у вас получилось конфликтная ситуация.

Вы можете отслеживать статус своего обращения перейдя по ссылке HL-852321


С уважением, отдел тех. поддержки фирмы "1С"


From :
Sent : 13.07.2024 20:42:45
To : '1С Линия консультации'
Subject : Re: (#HL-852321) RE[7]: Проблемы регистрации comcntr.dll при переходе на новую версию платформы

Здравствуйте!

Не работает и этот способ - выкладываю список веток реестра ПОСЛЕ применения Unregister Selected Files и следом удаления платформ программ 1С

Обращаю внимание что в этих ветках вообще собрались сведения от разных старых версиях - на каком-то этапе установщики 1С их так запомнили. Как выкручиваться - новая регистрация программы не изменяет эти ветки...

11.07.2024 11:32, 1С Линия консультации пишет:
>
> Здравствуйте,
>
> >Какие команды использовать для этого
>
> Unregister Selected Files
>
> по всем местам, содержащим comcntr.dll (ветки реестра чистятся при этом)
>
>
> После данной операции в реестре не будет "старых" записей.
>
>
> >Можете уточнить сколько и каких должно быть веток реестра при нормальной регистрации?
>
> К сожалению, не могу дать однозначной информации.
>
> Вы можете отслеживать статус своего обращения перейдя по ссылке HL-852321
>
>
> С уважением, отдел тех. поддержки фирмы "1С"
>
>
> From :
> Sent : 11.07.2024 10:04:30
> To : '1С Линия консультации'
> Subject : Re: (#HL-852321) RE[5]: Проблемы регистрации comcntr.dll при переходе на новую версию платформы
>
> Здравствуйте!
> RegDllView я использую давно и контролирую процесс регистрации
>
> Поясните свою позицию - Вы говорите что разрегистрацию нужно делать используя данную утилиту (вместо regsvr32 с ключом /u)?
> Какие команды использовать для этого (скрин выпадающего меню прилагаю):
>
> - Unregister Selected Files
> - Delete All Entries For Selected Files
> Дело в том, что regsvr32 с ключом /u убирает из списка Dll данной утилиты comcntr.dll независимо от того какая Dll (из какой платформы) зарегистрирована. Т.е. выполняю regsvr32 с ключом /u - comcntr.dll из списка в RegDllView исчез, а часть веток, содержащих ссылки на comcntr.dll в реестре (список прилагал ранее в таблице Xls) осталась.
> Можете уточнить сколько и каких должно быть веток реестра при нормальной регистрации?
>
> 10.07.2024 15:29, 1С Линия консультации пишет:
>>
>> Здравствуйте,
>>
>> При возникновении подобных проблем рекомендую :
>>
>> 1. остановить службу, закрыть все клиентские приложения
>>
>> 2. запустить RegDllView от администратора, найти все записи comcntr.dll и выполнить отмену их регистрации
>>
>> 3. запустить командую строку от администратора, выполнить регистрацию regsv32 comcntr.dll
>>
>>
Показать
VyacheslavShilov; +1 Ответить
17. starjevschik 16.09.24 13:14 Сейчас в теме
В итоге проблема решилась, но я даже не могу описать путь. Админ долго колдовал с пользователями и разрешениями, регистрировал-перерегистрировал, параллельно я скачал "Инструменты разработчика" (вот мощная штука, автор конечно человечище), там сначала все тоже не регистрировалось "недостаточно прав", но потом после какой-то очередной админской итерации все вдруг зарегистрировалось через эти ИР и заработало.
Странная история.
1с, судя по всему, &НаКлиенте запускает 32х ComConnector независимо от того, какая разрядность клиентского приложения. А на сервере 64х. Хотя в чем разница, если все крутится на одном сервере, непонятно.

Хочу очень поблагодарить всех принявших участие! проблема была очень большая...
VyacheslavShilov; +1 Ответить
19. aleksey2 88 25.09.24 09:25 Сейчас в теме
для этого я использую две программы: regdllview-x64 и regdllview
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот