Книга знаний

1С:Предприятие / Приемы программирования / OLE, COM

Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С

Нужно, например для вызова V82.ComConnector (а он как известно 32-битный) на стороне 64-битного сервера 1С.
<br><br><br><br>Или любого x32 COM-объекта из 64-битного приложения.
Автор статьи: Стальная Крыса | Редакторы:
Последняя редакция №4 от 16.02.12 | История
URL: http://kb.mista.ru/article.php?id=870

Ключевые слова: x64 сервер 1С, ComConnector, COM+


Идея не моя, ссылку на тырнет не сохранил.
Инструкция описана для Windows Server 2008 R2 x64 (в других версиях может быть что-то по-другому, но общий смысл наверное такой же)

Запуск x32 COM-объектов из x64 приложения


(создание "COM+ обертки")

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

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

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


  1. Запускаем консоль "Службы компонентов" (например:
    Пуск -> Администрирование -> Службы компонентов)
    .

  2. В ветке Приложения COM+ добавляем новое приложение:
    Создать -> Приложение
  3. На вопрос "Установка или создание нового приложения" - выбираем "Создать новое приложение".

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

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

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

Вызов осуществляется по имени созданного COM+ компонента. В данном примере надо создавать COM-объект с ProgID = "V8_ComConnector"

Объект = новый COMОбъект("V8_ComConnector");

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


Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2024 | Mista.ru

Яндекс.Метрика