Забодался с регистрацией comcntr.dll. Хоть не обновляй платформу
Windows10 64 Сервер мини (64)
При обновлении платформы (сейчас менял 8.3.25.1257 на 8.3.25.1286) опять выдает ошибку
"-2147221164(0x80040154): Класс не зарегистрирован" при попытки проверки синхронизации баз (Бухгалтерия и Зарплата)
Не погу понять систему что не так боишься сделать шаг влево-вправо - обновляешь по инструкции - останавливаем сервер 1С мини, ставим обновление, удаляем регистрацию старой dll, регистрируем новую - стоит удалить после этого старую платформу - получаем ошибку.
Опять удаляем регистрацию и заново регистрируем dll - ошибка при проверки синхронизации...
(2)это никак и не звучит, все отлично регится через regsvr32 "C:\Program Files\1cv8\8.3.19.1726\bin\comcntr.dll" только нужен запуск от имени Администратора
Сейчас интереснее все происходит - не уходит регистрация comcntr.dll прошлой версии:
Поставил обе платформы Выдает ошибку:
Не удалось подключиться к другой программе: Произошла исключительная ситуация (V83.COMConnector.1): Версия компоненты 'comcntr' (8.3.25.1257) отличается от версии корневого модуля 'core83' (8.3.25.1286)
Попытки вручную разрегистрировать и заново зарегистрировать ситуацию не меняет
Пробую запускать regsvr32 и из System32 и из SysWOW64
Смотрю реестр - там .1286 Откуда 1С берет регистрацию на .1257? Может не там смотрю?
Смотрю какая ветка реестра в утилите RegDllView у данной dll
Там нужно понимать о какой битности идет речь. Там про битность сервера (ОС), а не 1С.
Регистрация 32 бит 1С на 64 бит ОС (Операционной системы).
Для регистрации 64 бит компоненты на 64 ОС используется:
C:\Windows\System32\regsvr32 "C:\Program Files\1cv8\8.3.25.1286\bin\comcntr.dll"
или просто
regsvr32 "C:\Program Files\1cv8\8.3.25.1286\bin\comcntr.dll"
так как папка System32 указана в переменной среды Path, как %SystemRoot%\system32
соответственно найдется regsrv32 в этой папке.
(7) так все у меня 64 и операционка и платформа и сервер мини.
В моей ситуации имеет разницу откуда запускать regsvr32.exe - из System32 или из SysWOW64?
Пока уперся в невозможность удаления регистрации старого comcntr.dll
Нашел на форуме сообщение об аналогичной проблеме, но не смог найти решения...
(9) то что Вы говорите об использовании system32\regsrv32.exe - понятно, повторять не нужно...
Не очень понятно что произойдет "неверного" при использовании в моей ситуации sysWOW64\regsrv32.exe когда регистрируем эту dll так же из 64-х битной платформы...
С 2022г без проблем использовал именно sysWOW64\regsrv32.exe...
недавно ставил 8.3.
(2) ни с system32, ни с syswow64 не идёт и всё (((((((
не знаю уж что и делать. Все старые версии 1С сервера удалены. Агента перегагружал
Вот ещё. Раньше мы проверяли остановку и запуск служб компонентов, сейчас даже не найду перезапуск ((((
ХЕЛП!!!!!
(16)Если что то не получается. значит делаем все сначала. Банально может быть ставили новую платформу а вот обновить серверную частьзабыли поставить галочку. ну может же быть такое? может
Доброй ночи! Вам удалось решить проблему? Поделитесь решением... у меня не получается в первый раз за все 10 лет ((( измучался (((
Чувствую, что надо перезапустить службу компонентов. Это раньше помогало всегда. А теперь такого не нахожу вообще (
(17)еще один бедолага... Поставить СТРУЮ платформу (если была снесена) на которой была прошлая регистрация модуля, даплее regsvr32 /u с нужным путем к файлу, после уже просто regsvr32 "C:\Program Files\1cv8\8.2219.1726\bin\comcntr.dll", на новую версию, выбрать свою, но первое действие необходимо! Соот-но необходимо чтобы ранее зарегистрированный файл присутствовал
Проверьте наличие корректной версии библиотеки comcntr.dll в реестре Windows.
Для этого в реестре (regedit.exe, запускаем из под учетной записью с администраторскими правами) ищем по всему дереву «comcntr.dll».
Если библиотека зарегистрирована, то будет найдено несколько ключей.
Если несколько версий платформ установлено на рабочей станции, то количество результатов поиска увеличится пропорционально.
В значении ключа реестра указан путь к компоненте (или версия платформы).
Если версии отличаются, то получим ошибку
«Отличается версия comcntr.dll (8.3.x.хх) отверсии корневого модуля core83(8.3.y.yy).
Если библиотека вообще не зарегистрирована, то –
получим ошибку «Недопустимая строка с указанием класса…».
Если зарегистрирована библиотека НЕ ТОЙ версии:
Запускаем командную строку (cmd.exe) от имени администратора (в случае клиент-серверной версии - от имени того пользователя, под которым запускается агент сервера) для разрегистрации,
Выполняем разрегистрацию с параметром /u
regsvr32 /u c:\program files (x86)\1cv8\НЕ_ТА_ВЕРСИЯ\bin\comcntr.dll
или для 64 разр версии
regsvr32 /u c:\program files\1cv8\НЕ_ТА_ВЕРСИЯ\bin\comcntr.dll
Запускаем regedit.cmd
–
проверяем, что поиск comcntr.dll начиная с корня дерева не выдает результатов (либо выдает только о библиотеки из версии платформы 8.3, если таковая установлена).
Выполняем regsvr32 c:\program files(x86)\1cv8\.НУЖНАЯ_ВЕРСИЯ\bin\comcntr.dll
или соответственно для 64 раз версии
В regedit проверяем, что поиск возвращает нужную версию библиотеки.
для клиент-серверной версии :
- Убедитесь, что пользователь, от имени которого запущен 1С:Сервер Предприятия (например, usr1cv8) имеет права на чтение этого каталога, его подкаталогов и выше лежащего каталога.
- Проверьте, не зарегистрирован ли V8.COMConnector в COM+ (Start/ Settings/ Control Panel/ Administrative Tools/ Component Services/ Computers/ My Computer/ COM+ Applications)?
Регистрация в COM+ имеет смысл, если используется сервер 1С:Предприятия и V8.COMConnector разной разрядности или версии. При этом требуются дополнительные настройки прав. Если разрядность и версия совпадают, то удалите регистрацию V8.COMConnector из COM+ и повторите регистрацию при помощи regsvr32
Показать
Я пока не пробовал. Свою проблему решил следующим образом - снес ВСЕ платформы 1С (каталоги не удалял) и заново поставил старую. Реестр проверил - там только ссылки на одну платформу. На дня попробую обновить платформу еще раз.
Попробовал поставить опять 1286 - совет поддержки ничего не дал.
Что делал - поставил 1286 (ошибка та же), разрегистрировал (dll) и 1257, и 1286 в результате реестр не очистился полностью - остались ветки с 1257. Зарегистрировал 1286 - веток добавилось.
Опять разрегистрировал и зарегистрировал 1286 - часть веток содержит 1257, часть 1286.
Идей нет. Все ветки свел в таблицу экселя - если у кого есть возможность - посмотрите какие векти у вас для клиент-сервера
(24) в реестре имена веток где есть значение параметра comcntr.dll. Но только на серверах где ОДИН 1С-сервер (лучше конечно мини 64бит 8-) Просто интересно есть лишние ветки или нет...
Пока поступил тупо (возможно не правильно, но работает) - ручками по всем веткам реестра прошелся и поменял 1257 на 1268 у ссылок на comcntr.dll
Сейчас на сервере стоит одна только платформа 1268. Правда как ее менять на следующую когда выйдет новая - ХЗ
Хотелось бы найти правильное решение а не менять опять ссылку на dll
ну вот на сервере, где пришлось сначала снимать старую регистрацию, потом ставить новую 14 ссылок в реестре, все ссылаются на нужную длл. Ключи в реестре все технические. Может вам их грохнуть? Вряд ли из за них винда ляжет.
(26) Вот и у меня их 14. В них поменял ссылки - работает. Просто непонятно почему разрегистрация и новая регистрация менять только часть их. Чей глюк - Винды, 1С, антивирусника, моих каких-то действий неадекватных ранее.
Так же смущает почему деинсталяция 1С не грохает службу запуска сервера на этой платформе. Она так и остается в списке служб хоть и ссылается на пустую папку... Что-то держит чистку реестра...
(30) Тем, что она не дружелюбна в использовании, постоянно меняется (что максимально не удобно для доработок) и если ее внедряют во все типовухи, чегож ее не засунут в платформу и синтаксис помощник для адекватного использования. Вот этим всем.