Опишу ситуацию:
есть управляемая конфигурация на сервере 1С.
Для нее написана обработка по выгрузке данных в бухгалтерию. В обработку в макет зашити правила и сама обработка при выгрузке вызывает встроенную обработку "Универсальный обмен данными XML".
Универсальный обмен заполяется так, что бы он подключался напрямую в базу приемник через СОМ объект.
Когда идет создание СОМ обеъкта происходит следующая ошибка:
При попытке соединения с COM-сервером произошла следующая ошибка:
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13349)}: Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован: Класс не зарегистрирован
Я сделал следующее (прочитал тоже тут на форуме):
зарегить DLL через regsvr32 comc....dll в папке где лежит 1С. Сообщение было DLL удачно зарегалась.
Но проблема осталась.
Если же попытаться протестировать соединение через универсальный обмен то в обычном (не упраляемом режиме) то соединение устанавливается.
В УФ создание ComОбъекта выполняется на сервере. Зарегистрируйте компоненту там и добавьте на нее права пользователю, от которого запускается сервер 1С.
PS есть еще нюансы с разрядностью компоненты и ОС сервера.
(2) asved.ru, я вроде на сервере и регал DLLку через команду regsvr32 и указывал comn...dll (точное название сразу не вспомню).
Правод на внешнее соединение дал, хотя все делается под полными.
Кстати возможна ситуация, когда простой перезапуск сервера 1С под другим пользователем не отрабатывает сразу, продолалжает выполняться под предыдущим пользователем (надежнее либо сеанс завершить, либо перегрузиться).
(10) adva, насчет пользователей под которым запускал регистрацию и запущен сервер 1С - сегодня проверю.
Может быть даже попытаюсь перегрузить сервак на всякий случай.
Может проблема в версии компоненты? Например стоит у нас старенькая УТ10.3. Обновили платформу на 8.3, а в настройках обмена нет выбора версии 1С:Предприятия 8.3. Соответственно обмен через COM перестал работать. Переходим по строке ошибки, и меняем строку создания COM-компоненты на нужную.
Почистить кеш 1с в папках %appdata% Roaming и Local.
Зарегистрировать компоненту под админ правами.
Скачать приложение для отслеживания связей dll (не помню название), проверить действительно ли библиотека зарегистрировалась.
Проверить работоспособность.
Важно какой коннектор, хочет использовать ваша система 64 или 32 бита к примеру у меня был зарегистрирован х64 , но не было регистрации из папки х86.
Для регистрации достаточно создать ярлык на рабочий стол из паки Bin\
поставить в свойствах ярлыка галку "Запуск от имени администратора"
В поле объект: в начало добавить регистрацию, получится: C:\Windows\System32\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.6.2237\bin\comcntr.dll"
Если не помогло значит вам нужна любо другая версия - \8.?????\
Либо другая разрядность - \Program Files\
83.COMConnector класс не зарегистрирован Случается, что при попытке подключения к информационной базе через com-соединение возникает ошибка при вызове конструктора (COMОбъект): "Класс не зарегистрирован" или "Недопустимая строка с указанием класса".
Первым делом необходимо зарегистрировать DLL в системе
Regsvr32 "C:\Program Files\1cv8\версия\bin\comcntr.dll"
В случае, если не помогает - создаём коннектор руками:
Заходим в Панель управления - Администрирование - Службы компонентов.
Переходим к ветке Компьютеры - Мой компьютер - Приложения COM+.
В контекстном меню выбираем Создать - Приложение. Откроется Мастер установки приложений COM+.
Нажимаем "Далее".
Выбираем "Создать новое приложение".
Вводим любое имя "V83COMConnector". Устанавливаем переключатель "Серверное приложение". Нажимаем "Далее".
На следующем шаге устанавливаем "Текущий пользователь". Нажимаем "Далее".
Нажимаем "Готово".
В появившейся ветке V83COMConnector переходим к подветке Компоненты.
В контекстном меню выбираем Создать - Компонент. Откроется Мастер установки компонентов COM+.
Нажимаем "Далее".
Выбираем "Установка новых компонентов".
Выбираем файл <каталог 1С>\bin\comcntr.dll.
Нажимаем "Далее" - "Готово".
Переходим к ветке V83COMConnector.
В контекстном меню выбираем "Свойства". В открывшемся окне переходим на вкладку «Безопасность».
Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку "Применить политику программных ограничений". Устанавливаем Уровень ограничений - "Неограниченный".
Нажимаем "ОК".
Класс V83.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.
Хочу посмотреть компоненту по работе с внешними файлами.
На домашнем компьютере.
Ключа, разумеется нет.
Качнул пропатченную платформу, что бы потестить компоненту в пустой конфигурации.
Такая-же ошибка.
На патченных платформах comcntr.dll регистрировать безполезно?
Столкнулся с тем что на одном из серверов успешное выполнение regsrv32 не решало проблему. Проблему решил перезапуск сервера из под локальной системы, а не из под USR1CV8. Вдруг кому-нибудь поможет этот комментарий.