1С + ПЕРКО (PERCo) Запуск 32-битного COM соединения с библиотекой PERCo_S20_SDK.dll из 64-битного сервера 1С:Предприятия

В инструкции по регистрации DLL, поставляемой с модулем SDK PERCo, очень кратко сказано:

«Зарегистрировать PERCo_S20_SDK.DLL при помощи regsvr32.exe (regsvr32.exe PERCo_S20_SDK.dll)»

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

Больше всего сложностей возникает при регистрации в 64-битной операционной системе при установленном 64-битном сервере 1С:Предприятия, этот вариант и рассмотрим.

  • Копируем файл PERCo_S20_SDK.DLL в папку C:\Windows\SysWOW64 сервера.
  • Запускаем командную строку «от имени администратора».
  • Пишем в командной строке:

«C:\Windows\SysWOW64\regsvr32» «C:\Windows\SysWOW64\PERCo_S20_SDK.dll»

и запускаем. Появляется сообщение об успешной регистрации.

Примечание. Если Вы делаете это не в первый раз и успели «наследить» в разных папках, рекомендуется сначала деинсталлировать – выполнить команды:

«C:\Windows\SysWOW64\regsvr32» «C:\Windows\SysWOW64\PERCo_S20_SDK.dll» /u

«C:\Windows\System32\regsvr32» «C:\Windows\System32\PERCo_S20_SDK.dll» /u

  • Теперь необходимо обеспечить работоспособность зарегистрированной библиотеки для этого 32-битного СОМ-соединение под 64-битным сервером 1С:Предприятия. В интернете полно инструкций как регистрировать и для чего это нужно. Но к сожалению большинство из них не полные. В том числе на популярных инфостарте и мисте. Поэтому далее подробно распишем, как же все-таки запустить так, «чтобы оно взлетело».

 

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

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

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

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

Действие -> Новый документ

 

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

  • Указываем имя нового приложения и способ активации — «серверное приложение»:

  • В разделе учетной записи выбираем вариант «Указанный пользователь» и задаем имя и пароль того пользователя, под которым стартует агент сервера 1С:Предприятия (если забыли, проверьте в службах).

  • По кнопке «Далее» доходим до добавления пользователей для ролей, щелкаем мышью на «Users» и затем на кнопку «Добавить»:

  • Переходим на страницу «Добавление пользователей для ролей», открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя – указываем ту же учетную запись под которой работает сервер 1С.
  • В ветке созданного приложения переходим на ветку «Компоненты» и создаем компонент: Действие -> Новый документ

 

  • Откроется мастер установки компонентов COM+ , выбираем «Установка новых компонентов», и в диалоге выбираем нужную DLL-ку (т.к. мы ее ранее скопировали в папку WOW64, поэтому берем оттуда же: C:\Windows\SysWOW64\PERCo_S20_SDK.dll)
  • Открываем свойства только что созданного компонента:

идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роли CreatorOwner — если нет, тогда устанавливаем эту галку, и ставим галку «Принудительная проверка доступа на уровне компонента»;

  • В службах компонентов возвращаемся в ветку Приложения COM+, находим зарегистрированное приложение Perco_SDK, жмем правой кнопкой мыши и выбираем пункт «Пуск». Если ошибок не возникло и приложение «ожило» (включилась анимация ярлыка), то на этом все, можно проверять работоспособность. Если же возникли проблемы, то выполните еще несколько действий:
    1. В службах компонентов в ветке «Приложения COM+», на зарегистрированном приложении «Perco_SDK», жмем правой кнопкой мыши и выбираем пункт «Свойства».
    2. Переходим на вкладку «Безопасность» и устанавливаем галку на «Принудительная проверка доступа для приложения». Переключатель напротив «Проверка доступа на уровне процесса и на уровне компонента…», «Применять политику программных ограничений», «Уровень ограничений: Неограниченный», «Уровень проверки подлинности для вызовов: Подключиться», «Уровень олицетворения: Определить»;
    3. Переходим на вкладку «Активация», выбираем способ активации «Серверное приложение», ставим галку «Запустить приложение как службу NT»
    4. Применяем изменения (кнопка ОК или Применить)
    5. Снова в службах компонентов в ветке «Приложения COM+», на зарегистрированном приложении Perco_SDK жмем правой кнопкой мыши и выбираем пункт «Пуск».

 

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

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