Ошибка при регистрации компоненты comcntr код ошибки regsvr32 13 1с 8
Добрый день, дорогие друзья, я в своей работе часто сталкивался с рядом ошибок связанных с com объектами. Когда я только начинал работать в сфере ИТ, то подобные ошибки о которых пойдет речь ниже, вызывали у меня недоумение и я отправлял пользователей к программистам, но потом шло время и опыт мой рос, такие проблемы начал решать самостоятельно, теперь хочу поделиться решениями с вами.
Рассмотрим первый пример - ошибка связана с внешней обработкой EDI
Данная ошибка устраняется очень просто, вам нужно зарегистрировать excon.dll. Для этого открываем cmd от имени администратора и прописываем следующие команды
Решается не сложно, но для решения есть несколько методов и в разных ситуациях спасает тот или иной метод решения. Ниже рассмотрим примеры данной ошибки и решения.
Первое что нужно попробовать сделать на машине пользователя - это зарегистрировать comcntr.dll
Для этого открываем cmd от имени администратора и прописываем следующие команды
regsvr32 "C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
cd c:\Windows\SysWOW64 regsvr32 "C:\Program Files\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
Если данное решение не помогает, то нужно проверить на сервере 1С возникает такая же ошибка или нет, если возникает при тех же действиях, то сделать следующие действия в cmd от имени администратора
"C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver - Все что выделено жирным шрифтом, в вашем случае может отличаться
"C:\Program Files\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver " - Все что выделено жирным шрифтом, в вашем случае может отличаться
Можно создать данное com соединение с помощью "Службы Компонентов Windows" , об этом рассказывать не буду в данной статье, если вам нужна информация, пишите комменты, я свяжусь с вами и все расскажу. Если будет много пожеланий, сделаю отдельную статью на эту тему.
Такое уже было и я решил зарегистрировать comcntr.dll. Запускаю от имени администратора bat-файл со строкой:
А мне выдается, чтобы я проверил, что двоичный файл находится на указанном пути, а я пути копировал (чтобы совсем без ошибок) из проводника. И почему не находится файл ?
Еще предлагается запустить отладку, а я не знаю как это делается :(
Сколько же фигни тут понаписали. А ларчик прост - почитайте требования платформы к ОС - для 2008 R2 требуется KB976932+KB2999226.
А у вас случайно не Windows vista? Если да, попробуйте отключить проверку UAC в учетных записях пользователя
Я так и не понял вы нашли то вручную файл comcntr.dll в указанной папке?
То что вы пути скопировали еще не говорит о наличии самого файла.
(10) Попробуйте зарегистрировать любую другую dll, желательно не относящуюся к 1с, если не получится то скорее всего он и есть
(12)Раньше успешно регистрировались comcntr.dll из 1С 8.3.8 и 8.3.10. А сейчас 8.3.12. Может быть требования к Windows изменились ?
(1) В командной строке сначала выполнить CD "C:\Program Files (x86)\1cv8\8.3.12.1616\bin" а затем regsvr32 comcntr.dll
Сколько же фигни тут понаписали. А ларчик прост - почитайте требования платформы к ОС - для 2008 R2 требуется KB976932+KB2999226.
(24) я недели две назад полдня потратил ;) эти [censored] могли бы хоть к первым релизам прикладывать требования
Столкнулся еще с одной проблемой.
База на сервере. Работаем по RDP. После установки всех обновлений Windows со всех компьютерах, кроме одного, все заработало. Перерегистрация базы результата не дала. Нужно было еще сделать проверку подключения в параметрах подключения. Вот после этого и на последнем компьютере синхронизация пошла.
А для 2003-его сервера с установленным SP2 помогает установка соответствующего vc_redist.x86 или vc_redist.x64. Без этого регистрация в системе comcntr.dll не проходит.
Коллеги, также встретился с данной проблемой. Но все вышеперечисленное не помогло. БП 8.3.12, WinSrv2003 x64.
Ошибка вылетала при автоматических обновлениях в режиме предприятия.
Начал бороться пунктуально, под админом, правильно прописав путь к релизу, а также, поскольку система х64, верно прописывая путь к regsrv32:
C:\Windows\SysWOW64\regsvr32 «C:\Program Files (x86)\1cv8\*версия платформы*\bin\comcntr.dll» - все успешно, но не работает.
Далее накатил свежую платформу 8.3.15 - та же история. Написал в поддержку, отписали "Скорее всего как то не так регистрировали компоненту". Спасибо :)
Решить удалось следующим образом:
Панель управления => Администрирование => Cлужбы компонентов => приложения com+ => v83comconnector => свойства => закладка "удостоверение" => ввести данные доменной учетной записи.
(29) Была та же проблема на windows 10 Домашняя. v83comconnector в "Панель управления => Администрирование => Cлужбы компонентов => приложения com+ " отсутствовал, поэтому добавил службу компонентов вручную и назвал "v83comconnector", способ активации выбрал "Серверное приложение", на закладке "удостоверение" оставил "Текущий (вошедший в систему) пользователь". Далее добавил к этой службе компонентов новый компонент, где указал путь до библиотеки comcntr.dll в папке bin текущей версии платформы. Перезапустил 1ску и всё заработало! Спасибо за наводку.
Винда 10 х64 раз 20 регил дллки успешно обе 32 и 64 и ноль результата
Так и выдает ошибку
Зашел в службу компонентов удалил там все com лишние и v83 тоже
после зарегил один раз обе дллки 64 и 32
(30)Возможно у базы, с которой устанавливается Com-соединение, указан принудительный запуск платформы 8.3.10.2466.
Перед этим нужно отключить службу агента сервера 1С:Предприятия и все программы, использующие эту DLL.
это как, перезагрузить сервер?
А вообще интересное замечание (если конечно такое возможно?), иногда требуется соединиться с базой на другой платформе. Как выглядит этот принудительный запуск?
Com-соединение меня не устраивает из-за ограниченного функционала. Нужно OLE-соединение V83.Application.
Выдает ошибку:
: -2147221005(0x800401F3): Недопустимая строка с указанием класса
Например:
regsvr32.exe "C:\Program Files\1cv8\8.3.14.1993\bin\comcntr.dll"
ВызватьИсключение ТекстИсключения
При попытке обновления может возникнуть следующая ошибка:
Найдем папку с установленной платформой. Обычно установленные платформы находятся в C:\Program Files (x86)\1cv8 или C:\Program Files\1cv8.
Перейдем в папку C:\Program Files (x86)\1cv8. На скриншоте видно, что установлено несколько версий платформы:
Запустим стандартное приложение «Командная строка» от имени администратора:
В командной строке переходим в папку с установленной платформой 8.3.15.2107 (версия платформы может отличаться, нужно выбирать последнюю установленную). Для этого выполним команду
cd C:\Program Files (x86)\1cv8\8.3.15.2107\bin
Для исправления ошибки выполним команду regsvr32.exe comcntr.dll (вводим указанный текст в консоли и нажимаем Enter):
После успешной регистрации файла перезапускаем 1С для продолжения обновления:
Если не получилось через командную строку, то воспользуйтесь файлом RegCOM1. Поместите файл RegCOM1 в папку bin последней версии платформы и запустите от имени администратора.
В большинстве случаев никаких проблем с этой библиотекой не наблюдается - обновлятор сам автоматически регистрирует и использует библиотеку нужной версии 1с, но изредка возникают случаи (в основном на серверных ОС), когда требуются "пляски с бубном".
Как понять, что у нас проблемы с COM
Для этого нажимаем кнопку "Проверить настройки" удерживая клавишу "Shift" на клавиатуре:
При нормальной работе COM отчёт будет примерно таким:
При проблемах же с COM возникнет вот такая или похожая ошибка:
Ещё может писать, что -то типа " Не удалось создать программное подключение к 1С ".
Да, судя по тесту, у нас проблемы с COM
Прежде всего, о какой именно библиотеке идёт речь? Эта библиотека comcntr.dll, которая находится в папке bin конкретной платформы 1с:
Эта библиотека устанавливается и автоматически регистрируется в системе при установке платформы.
Кроме того, обновлятор перед тем как подключаться к базе через внешнее соединение сам дополнительно регистрирует в системе библиотеку из нужной версии платформы при помощи команды:
Итак, что мы можем предпринять?
Шаг №0
Обратите внимание на утилиту для отображения и регистрации библиотек RegDllView. При помощи неё вы как минимум сможете контролировать результат работы следующих шагов.
Шаг №1
Прежде всего убеждаемся, что у нас действительно проф-версия платформы, потому что для базовой версии платформы внешнее подключение к базам работать и не должно (это ограничение платформы).
Чтобы понять какая у нас платформа (базовая или проф) выполним вот этот пункт.
Если лицензия на платформу у нас всё же не проф, а базовая, то все остальные шаги не имеют смысла. Внешнее подключение к базам у нас работать не будет (из-за ограничений платформы). Ничего не остаётся, кроме как настроить базы вот так.
Шаг №2
Далее пробуем запустить обновлятор с правами администратора.
Если у вас включён UAC, то добиться этого можно, нажав на ярлыке обновлятора правой кнопкой, и выбрав вариант "Запуск от имени администратора".
Далее выбираем базу и нажимаем кнопку "Проверить настройки". Если ошибка пропала и больше не воспроизводится даже при обычном запуске обновлятора (без прав администратора) - поздравляю, проблема решена. Если нет - идём дальше.
Шаг №3
В 32-битной версии ОС пробуем выполнить команду
В 64-битной версии ОС команда будет такой:
- для регистрации 64-битной платформы 1С:
- для регистрации 32-битной платформы 1С:
Эти команды запускаем от имени пользователя с правами администратора. А при включённом UAC, запускаем cmd через "Запуск от имени администратора", либо через такой же запуск написанного батника.
Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u
Если этот шаг не помог - идём дальше.
Шаг №4
Похоже, что у обновлятора не получается зарегистрировать COM компоненту из-за настроек безопасности на вашем сервере.
В этом случае:
- Заходим в Панель управления - Администрирование - Службы компонентов.
- Переходим к ветке Компьютеры - Мой компьютер - Приложения COM+.
- В контекстном меню выбираем Создать - Приложение. Откроется Мастер установки приложений COM+.
- Нажимаем "Далее".
- Выбираем "Создать новое приложение".
- Вводим имя "V83COMConnector". Устанавливаем переключатель "Серверное приложение". Нажимаем "Далее".
- На следующем шаге устанавливаем "Текущий пользователь". Нажимаем "Далее".
- Нажимаем "Готово".
- В появившейся ветке V83COMConnector переходим к подветке Компоненты.
- В контекстном меню выбираем Создать - Компонент. Откроется Мастер установки компонентов COM+.
- Нажимаем "Далее".
- Выбираем "Установка новых компонентов".
- Выбираем файл \bin\comcntr.dll.
- Нажимаем "Далее" - "Готово".
- Переходим к ветке V83COMConnector.
- В контекстном меню выбираем "Свойства". В открывшемся окне переходим на вкладку «Безопасность».
- Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку "Применить политику программных ограничений". Устанавливаем Уровень ограничений - "Неограниченный".
- Нажимаем "ОК".
После этого обновлятор должен смочь самостоятельно регистрировать компоненты всех версий платформ, а не только той, которую мы прописали в компоненте.
Шаг №5
Бывает так, что помогает только повторная переустановка платформы (при этом происходит корректная регистрация компоненты).
Шаг №6
Если проблема начала возникать сразу после обновления платформы 1с, то вероятнее всего новой версии платформы 1с не хватает какого-нибудь сервиспака или обновления для вашей операционной системы. Поэтому если есть возможность - ставим их все, если нет - действуем выборочно согласно этой ссылке.
Шаг №7
Бывает так, что всё работает при обычном запуске обновлятора, но не работает при запуске с повышением привилегий до администратора, когда вы запускаете обновлятор через пункт меню "Запустить от имени администратора" или из программы (типа TotalCommander), которая сама запущена с повышенными привилегиями.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
На это есть альтернативный вариант с помощью командной строки операционной системы. Забегая немного вперед, и чтобы обезопасить себя от ошибок при регистрации com-компоненты comcntr.dll через командную строку, подобных приведенной на скрине
Чтобы избежать ошибки "Модуль comcntr.dll загружен, но не удалось выполнить вызов DllRegisterServer, код ошибки 0x80070005" запускайте командную строку с правами администратора
А дальше уже все зависит от разрядности операционной системы, в которой Вы хотите зарегистрировать компоненту com-соединения 1C: Предприятия.
В системе с разрядностью x32(x86) для платформы 1С: Предприятие 8.2
C:\Program Files (x86)\1cv82\\bin> regsvr32 comcntr.dll
, где - номер текущего используемого релиза плафтормы 1С 8.
Для платформы 1С: Предприятие 8.3 командная строка для регистрации com-компоненты будет выглядеть примерно так:
C:\Program Files (x86)\1cv8\\bin> regsvr32 comcntr.dll
, на скрине, приведенном ниже в качестве прbмерf для случая регистрациb comcntr.dll в ОС x86 значение - "8.3.9.1818"
Теперь рассмотрим вариант для системы с разрядностью x64 для платформы 1С: Предприятие 8.2, альтернативный вариант:
C:\Windows\SysWOW64>regsvr32 "C:\Program Files (x86)\1cv82\\bin\comcntr.dll"
Для Windows x64 регистрация com-соединения 1С 8.3 платформы разрядности x64 может выглядеть так:
C:\Windows\SysWOW64>regsvr32 "C:\Program Files\1cv8\\bin\comcntr.dll"
ИЛИ как в примере для случая x64-разрядной операционной системы Windows
В том случае, если у Вас клиент-серверный вариант работы базы 1С 8, то необходимо зарегистрировать компоненту как на самом сервер, где установлен Агент сервера 1С:Предприятия, так и на рабочих местах на которых используется COM-соединение при подключении к базам (чаще всего при обмене между базами).
Так же на практике иногда требовалась перезагрузка рабочего компьютера. Но если сразу после успешной регистрации компоненты по приведенным выше инструкциям соединение отказывается работать, то лучше все-таки выполнить перезагрузку.
Читайте также: