Как зарегистрировать библиотеку comcntr dll

Онлайн-школа программирования в 1С

Как зарегистрировать библиотеку comcntr dll
Обновлятор-1с в своей работе использует com-библиотеку от 1с для внешнего подключения к базам.

В большинстве случаев никаких проблем с этой библиотекой не наблюдается – обновлятор сам автоматически регистрирует и использует библиотеку нужной версии 1с, но изредка возникают случаи (в основном на серверных ОС), когда требуются “пляски с бубном”.

Как понять, что у нас проблемы с COM

Для этого нажимаем кнопку “Проверить настройки” удерживая клавишу “Shift” на клавиатуре:

При нормальной работе COM отчёт будет примерно таким:

При проблемах же с COM возникнет вот такая или похожая ошибка:

Ещё может писать, что -то типа “Не удалось создать программное подключение к 1С”.

Да, судя по тесту, у нас проблемы с COM

Прежде всего, о какой именно библиотеке идёт речь? Эта библиотека comcntr.dll, которая находится в папке bin конкретной платформы 1с:

Эта библиотека устанавливается и автоматически регистрируется в системе при установке платформы.

Кроме того, обновлятор перед тем как подключаться к базе через внешнее соединение сам дополнительно регистрирует в системе библиотеку из нужной версии платформы при помощи команды:

regsvr32.exe “путь к папке bin\comcntr.dll”

Итак, что мы можем предпринять?

Шаг №0

Обратите внимание на утилиту для отображения и регистрации библиотек RegDllView. При помощи неё вы как минимум сможете контролировать результат работы следующих шагов.

Шаг №1

Прежде всего убеждаемся, что у нас действительно проф-версия платформы, потому что для базовой версии платформы внешнее подключение к базам работать и не должно (это ограничение платформы).

Чтобы понять какая у нас платформа (базовая или проф) выполним вот этот пункт.

Если лицензия на платформу у нас всё же не проф, а базовая, то все остальные шаги не имеют смысла. Внешнее подключение к базам у нас работать не будет (из-за ограничений платформы). Ничего не остаётся, кроме как настроить базы вот так.

Шаг №2

Далее пробуем запустить обновлятор с правами администратора.

Если у вас включён UAC, то добиться этого можно, нажав на ярлыке обновлятора правой кнопкой, и выбрав вариант “Запуск от имени администратора”.

Далее выбираем базу и нажимаем кнопку “Проверить настройки”. Если ошибка пропала и больше не воспроизводится даже при обычном запуске обновлятора (без прав администратора) – поздравляю, проблема решена. Если нет – идём дальше.

Шаг №3

В 32-битной версии ОС пробуем выполнить команду

regsvr32 “путь к папке bin\comcntr.dll”

В 64-битной версии ОС команда будет такой:

– для регистрации 64-битной платформы 1С:

regsvr32 “путь к папке bin\comcntr.dll”

– для регистрации 32-битной платформы 1С:

C:\Windows\SysWOW64\regsvr32 “путь к папке bin\comcntr.dll”

Эти команды запускаем от имени пользователя с правами администратора. А при включённом UAC, запускаем cmd через “Запуск от имени администратора”, либо через такой же запуск написанного батника.

Если команда регистрации не помогла, то нужно предварительно удалить регистрацию библиотеки comcntr.dll, запустив ту же команду вызова regsvr32 с ключом /u

Если и это не помогло, попробуйте переустановить платформу 1С в режиме Исправить, а затем зарегистрируйте библиотеку, как написано выше.

Если этот шаг не помог – идём дальше.

Шаг №4

Похоже, что у обновлятора не получается зарегистрировать COM компоненту из-за настроек безопасности на вашем сервере.
В этом случае:

  1. Заходим в Панель управления – Администрирование – Службы компонентов.
  2. Переходим к ветке Компьютеры – Мой компьютер – Приложения COM+.
  3. В контекстном меню выбираем Создать – Приложение. Откроется Мастер установки приложений COM+.
  4. Нажимаем “Далее”.
  5. Выбираем “Создать новое приложение”.
  6. Вводим имя “V83COMConnector”. Устанавливаем переключатель “Серверное приложение”. Нажимаем “Далее”.
  7. На следующем шаге устанавливаем “Текущий пользователь”. Нажимаем “Далее”.
  8. Нажимаем “Готово”.
  9. В появившейся ветке V83COMConnector переходим к подветке Компоненты.
  10. В контекстном меню выбираем Создать – Компонент. Откроется Мастер установки компонентов COM+.
  11. Нажимаем “Далее”.
  12. Выбираем “Установка новых компонентов”.
  13. Выбираем файл \bin\comcntr.dll.
  14. Нажимаем “Далее” – “Готово”.
  15. Переходим к ветке V83COMConnector.
  16. В контекстном меню выбираем “Свойства”. В открывшемся окне переходим на вкладку «Безопасность».
  17. Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку “Применить политику программных ограничений”. Устанавливаем Уровень ограничений – “Неограниченный”.
  18. Нажимаем “ОК”.

После этого обновлятор должен смочь самостоятельно регистрировать компоненты всех версий платформ, а не только той, которую мы прописали в компоненте.

Шаг №5

Бывает так, что помогает только повторная переустановка платформы (при этом происходит корректная регистрация компоненты).

Шаг №6

Если проблема начала возникать сразу после обновления платформы 1с, то вероятнее всего новой версии платформы 1с не хватает какого-нибудь сервиспака или обновления для вашей операционной системы. Поэтому если есть возможность – ставим их все, если нет – действуем выборочно согласно этой ссылке.

Шаг №7

Бывает так, что всё работает при обычном запуске обновлятора, но не работает при запуске с повышением привилегий до администратора, когда вы запускаете обновлятор через пункт меню “Запустить от имени администратора” или из программы (типа TotalCommander), которая сама запущена с повышенными привилегиями.

Наверняка есть и другие экзотические случаи о которых я пока не знаю – пожалуйста, пишите о них мне на почту helpme1c.box@gmail.com, чтобы я смог дополнить эту статью.

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора). Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Источник: https://helpme1c.ru/obnovlyator-1s-reshenie-problem-s-com-bibliotekoj-dlya-vneshnego-podklyucheniya-k-baze

REGSVR32 – регистрация или отмена регистрации библиотеки DLL в реестре Windows

Как зарегистрировать библиотеку comcntr dll

Модель многокомпонентных объектов (Component Object Model — СОМ) является основным средством взаимодействия программ любых типов: библиотек, приложений, системного программного обеспечения и т.п.

и определяет стандартный механизм, с помощью которого одна часть программного обеспечения ( сервер ) предоставляет свои сервисы другой ( клиент ) , что обеспечивается применением определенных протоколов взаимодействия между ними ( между клиентом и сервером).

В качестве сервера может использоваться динамически подключаемая библиотека (DLL), подгружаемая во время работы приложения, либо отдельный самостоятельный процесс, который может быть компонентом прикладной или системной программы, или даже процесс, выполняющийся на другом компьютере.

Для нахождения нужного клиенту сервера, используется специальная информация из реестра Windows, которая формируется в при регистрации сервера в системе, чаще всего, в виде модуля динамически загружаемой библиотеки DLL.

Регистрация необходима, поскольку программы работают не с самими файлами DLL, OCX, ACX, EXE, а с объектами, представляющими определенный набор программных интерфейсов. Для регистрации DLL используется следующие разделы реестра:

HKLM\SOFTWARE\Classes\CLSID – при регистрации COM-объектов библиотек для всех пользователей системы;

HKCU\SOFTWARE\Classes\CLSID – при регистрации COM-объектов библиотек только лишь для текущего пользователя;

HKLM\SOFTWARE\Wow6432Node\Classes\CLSID – для регистрации 32-битных DLL в 64-битных ОС Windows;

При регистрации, в указанном разделе реестра создается ключ с именем, эквивалентным глобальному уникальному идентификатору GUID регистрируемого оюъекта.

GUID применительно к СОМ, является идентификатором класса. Чтобы отличать идентификаторы классов от других идентификаторов, для них используют подраздел реестра с именем CLSID.

GUID представляет собой 128-разядное 16-ричное значение, заключенное в фигурные скобки:

{23170F69-40C1-278A- 1000-000100020000

При регистрации в реестре создается подраздел с именем, соответствующим идентификатору GUID, содержащий информацию о пути и имени исполняемого файла, его версии, времени регистрации, сведения о разработчике, и прочие параметры, определяющие специфические свойства регистрируемого объекта.

Удаление или повреждение данных регистрации приводит к неработоспособности зарегистрированного компонента системы или прикладной программы, что, как правило, сопровождается сообщением об ошибке поиска DLL и предложением переустановить проблемное программное обеспечение.

Вместо переустановки вполне можно обойтись перерегистрацией поврежденного объекта с помощью утилиты regsvr32.exe, имеющейся во всех версиях операционных систем семейства Windows .

Утилита regsvr32.exe является стандартной программой командной строки для регистрации и отмены регистрации элементов управления OLE, ActiveX и библиотек DLL в реестре Windows. В 64-разрядных версиях Windows присутствуют две версии файла regsv32.exe:

– 64-разрядная версия в каталоге %systemroot%\System32 (обычно – C:\Windows\System32)

– 32-разрядная версия в каталоге %systemroot%\SysWoW64 (обычно – C:\Windows\SysWoW64)

Для работы утилиты требуются повышенные привилегии, поэтому окно командной строки должно вызываться с правами администратора ( ”Запуск от имени администратора”).

При запуске regsvr32.exe без параметров командной строки, либо при запуске с неверными параметрами, отображается подсказка:

Формат командной строки REGSVR32:

Regsvr32 [/u] [/s] [/n] [/i[:строка_команд]] DLL-файл

/u — – вызывает DllUnInstall, отменяет регистрацию сервера

/i — вызывает DllInstall, передавая ей в параметре необязательную строку_команд;

/n — не вызывает DllRegisterServer; может использоваться с ключом /I;

/s – “тихий” режим; окна сообщений не отображаются;

regsvr32 /u “C:\Program Files\7-Zip\7-zip32.dll” – отменить регистрацию указанной DLL. При успешной отмене отображается сообщение:

Для подавления вывода сообщения, используется параметр /s:

regsvr32 /u /s “C:\Program Files\7-Zip\7-zip.dll”

В результате выполнения данной команды, из контекстного меню Проводника Windows, вызываемого правой кнопкой мышки, исчезнет пункт архиватора 7-Zip. Для его восстановления необходимо выполнить регистрацию 7-zip.dll командой:

regsvr32 “C:\Program Files\7-Zip\7-zip.dll”

Необходимо не забывать о разрядности регистрируемых объектов в 64-разрядных версиях ОС. В случае необходимости регистрации 32-разрядного объекта, нужно явно указать путь для 32-битной редакции утилиты regsvr32:

%SystemRoot%\syswow64\regsvr32.exe

Или без использования переменных окружения:

C:\Windows\System32\regsvr32.exe

В качестве дополнительного программного средства для управления регистрацией объектов COM, очень удобно пользоваться бесплатной утилитой от Nirsoft RegDLLView.exe. Программа не требует установки в системе, имеет небольшой размер и позволяет:
– Получить в удобном виде список всех зарегистрированных в системе объектов. – Сохранить в текстовом файле или в HTML-формате параметры всех или выделенных из списка зарегистрированных DLL. – Выполнить регистрацию или отмену регистрации выбранных объектов. – Создать reg-файл для выполнения отмены регистрации одной или нескольких DLL. – Зарегистрировать или перерегистрировать указанный файл. Кроме того, имеется возможность проверить цифровые подписи исполняемых файлов зарегистрированных объектов, просмотреть или изменить их свойства, а также выполнить запуск редактора реестра с отображением информации выбранного GUID через пункт контекстного меню ”Open in Regedit”, вызываемого правой кнопкой мышки.

Страница с описанием RegDllView и ссылками для скачивания 32-х и 64-х разрядных версий программы.

Весь список команд CMD Windows

Источник: https://ab57.ru/cmdlist/regsvr32.html

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.