image_pdfimage_print

COM соединения в 1С

Если вы установили установили новую версию платформы 1С и получили ошибку типа «Версия компоненты ‘comcntr’ (8.2.18.102) отличается от версии корневого модуля ‘core82’ (8.2.19.83)». Значит Вам необходимо перерегистрировать сервер 1С в COM.

Для клиента регистрация 1С в качестве сервера COM под администратором запустить следующую строку:

cd C:\\Program Files (x86)\\1cv8\\8.3.6.2152\\bin

regsvr32 comcntr.dll

 

На сервере для ComConnector необходимо выполнить дополнительные действия:

Запуск x32 COM-объектов из x64 приложения. (создание «COM+ обертки»)

Нужно, например для вызова V82.ComConnector на стороне 64-битного сервера 1С.

Это происходит потому, что 64 битные приложения не могут запускать 32 битные DLL которые активируются при запуске 32 битного COM объекта 1С. Для решения проблемы нужно воспользоваться оберткой COM+ которая являясь 64 битным приложением может взаимодействовать с 32 битными библиотеками.

Для это необходимо выполнить следующие шаги (пошаговая инструкция):

Запускаем консоль «Службы компонентов» (например:

Пуск -> Администрирование -> Службы компонентов)

В ветке Приложения COM+ добавляем новое приложение:

Создать -> Приложение

На вопрос «Установка или создание нового приложения» — выбираем «Создать новое приложение».

Имя нового приложения лучше написать чтобы было понятно о чем речь: V8_ComConnector, способ активации — «серверное приложение».
Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С.

В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя — учетную запись под которой работает сервер 1С.
В ветке созданного приложения переходим на ветку «Компоненты» и создаем компонент:

Создать -> Компонент

Выбираем «Установка новых компонентов», и в диалоге выбираем нужную DLL-ку (в данном примере: comcntr.dll)
Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner — если нет, тогда устанавливаем эту «птичку».

Не надо забывать, что созданная надстройка работает только в 64-битном приложении. Если нужно, чтобы конфигурация 1С работала еще и файловом варианте на 32-битных машинах — тогда нужно соответствующие части кода «обертывать» впрепроцессорные инструкции.

Сссылка на исходник: http://kb.mista.ru/article.php?id=870

 

В оригинале статьи:

«Вызов осуществляется по имени созданного COM+ компонента. В данном примере надо создавать COM-объект с ProgID = «V8_ComConnector». Объект = новый COMОбъект(«V82_ComConnector»);»

Проверил — работает на Server 2008 SR2

Объект = новый COMОбъект(«V82.ComConnector»);  и Объект = новый COMОбъект(«V82.ComConnector.1»);

не работает Объект = новый COMОбъект(«V82_ComConnector»);»

Новое на infosart: http://infostart.ru/public/195820/ 

 

И возможно у Вас строка вызова зависает на неопределенное время. Тогда Вам срочно нужно проверить лицензии. И возможно установить нет в свойствах базы «Разрешить выдачу лицензии сервером 1С:Предприятия».