Home News

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

29.08.2018

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

КВ-1С - Гайд для Начинающих

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


Центр управления PERCo S-20

«Зарегистрировать 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С:Предприятия. В интернете полно инструкций как регистрировать и для чего это нужно. Но к сожалению большинство из них не полные. В том числе на популярных инфостарте и мисте. Поэтому далее подробно распишем, как же все-таки запустить так, «чтобы оно взлетело».

 

Итак, мы уже знаем, что 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, жмем правой кнопкой мыши и выбираем пункт «Пуск». Если ошибок не возникло и приложение «ожило» (включилась анимация ярлыка), то на этом все, можно проверять работоспособность. Если же возникли проблемы, то выполните еще несколько действий: В службах компонентов в ветке « Приложения COM+ », на зарегистрированном приложении « Perco_ SDK », жмем правой кнопкой мыши и выбираем пункт « Свойства ». Переходим на вкладку « Безопасность » и устанавливаем галку на « Принудительная проверка доступа для приложения ». Переключатель напротив « Проверка доступа на уровне процесса и на уровне компонента …», « Применять политику программных ограничений », « Уровень ограничений: Неограниченный », « Уровень проверки подлинности для вызовов: Подключиться », « Уровень олицетворения: Определить »; Переходим на вкладку « Активация », выбираем способ активации « Серверное приложение », ставим галку « Запустить приложение как службу NT » Применяем изменения (кнопка ОК или Применить ) Снова в службах компонентов в ветке « Приложения COM+ », на зарегистрированном приложении Perco_ SDK жмем правой кнопкой мыши и выбираем пункт « Пуск ».

 

Новости

rss