При попытке настроить обмен данными между базами 1С через COM-соединение часто возникает критическая ошибка при создании приложения COM+. Несмотря на то, что система может выдавать разные коды ошибок, суть проблемы чаще всего сводится к конфликтам версий библиотек comcntr.dll или нарушению целостности регистрации компонентов в операционной системе Windows. Давайте разберем, как последовательно диагностировать и устранить эту неисправность.
Прежде чем приступать к глубокой перенастройке, необходимо убедиться, что базовые службы, от которых зависит работа COM+, запущены и корректно функционируют. Для этого откройте оснастку «Службы» (services.msc) и проверьте статус следующих объектов:
Если данные службы остановлены, их необходимо запустить и установить тип запуска «Автоматически». Если службы работают, но проблема сохраняется, переходим к этапу принудительной перерегистрации библиотеки comcntr.dll.
Наиболее частая причина сбоев — попытка системы использовать неверную версию библиотеки comcntr.dll или конфликт разрядности (32-bit vs 64-bit) при наличии нескольких установленных версий платформы 1С. Для решения этой задачи мы воспользуемся специализированным командным файлом. Создайте текстовый файл с расширением .bat, вставьте в него приведенный ниже код и запустите его от имени администратора.
set version=8.3.18.1208
set x64=C:\Program Files\1cv8\%version%\bin\comcntr.dll
set x32=C:\Program Files (x86)\1cv8\%version%\bin\comcntr.dll
set reg64=%systemroot%\System32\regsvr32.exe
set reg32=%systemroot%\SysWoW64\regsvr32.exe
%reg64% /i /s "%x64%"
%reg64% /u /s "%x32%"
%reg64% /i /s "%x64%"
%reg32% /u /s "%x64%"
%reg64% /i /s "%x64%"
%reg32% /u /s "%x32%"
%reg64% /i "%x64%"
В данном скрипте переменная version должна соответствовать той версии платформы 1С, для которой вы создаете COM+ приложение. Скрипт последовательно выполняет процедуру снятия регистрации и повторной корректной регистрации библиотеки, очищая реестр от «мусорных» записей предыдущих установок.
Если описанные выше шаги не привели к результату, необходимо углубиться в диагностику системы:
0x80040154 или 0x80070005) подскажет, идет ли речь об отсутствии регистрации компоненты или об отказе в доступе к папке C:\Windows\System32\Com.HKEY_CLASSES_ROOT\CLSID и HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID.sfc /scannow, а затем dism /online /cleanup-image /restorehealth. Это поможет исключить повреждение системных библиотек Windows, отвечающих за работу COM-серверов.Создание COM+ приложения для 1С требует строгой последовательности действий. Если вы работаете с разными версиями платформы, важно следить за тем, чтобы comcntr.dll была зарегистрирована именно для той версии, которую вы вызываете в коде через New COMObject("V83.COMConnector"). В 90% случаев использование приведенного bat-файла позволяет нормализовать работу системы и успешно создать необходимое приложение в оснастке «Службы компонентов».