Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С
ОС: Windows Server 2012R2. Сервер 1С x64.Клиент 1С v8.3.5.1186
Проблема :
Модуль: ScrptCtrl = Новый COMОбъект(“MSScriptControl.ScriptControl”);
Выдает ошибку:
{ОбщийМодуль.Хттп.Модуль(55)}: Error calling constructor (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован.
Скачал Windows Script Control
Зарегистрировал: regsvr32 <Путь к установленному Windows Script Control >
Не помогло.
Решение:
- Запустил консоль “Службы компонентов” (%windir%\system32\comexp.msc)
- В ветке Приложения COM+ добавл новое приложение: Создать -> Приложение
- На вопрос “Установка или создание нового приложения” – выбрал “Создать новое приложение”.
- Имя нового приложения лучше написать чтобы было понятно о чем речь: “1С_ScriptControl”, способ активации – “серверное приложение”.
- Учетная запись для запуска приложения: Локальная служба – встроенная учетная запись службы.
- При запросе членов Роли CreatorOwner, помимо существующей учетной записи, добавил туда System и учетную запись под которой работает сервер 1С.
- В ветке созданного приложения перешел на “Компоненты” и создал компонент: Создать -> Компонент
- В мастере “Установка компонентов COM+”, выбрал “Импорт уже зарегистрированных компонентов”. На шаге “Выбор компонентов для импорта” поставил флаг 32 разряда, нашел “MSScriptControl”
Проверяем в 1С – работает.