Ручное создание COM+ соединения для 1С
На сервере под управлением Microsoft Windows Server 2008 R2 ×64 работает 32-х разрядная версия сервера 1С. Не спрашивайте – почему именно так, но на личном опыте убедился, что версия 1С данной разрядности работает стабильнее, чем её 64-х битный собрат. Единственным минусом, который я пока обнаружил, является тот факт, что при установке 32-х битной версии нет возможности активировать компоненту COM+ соединений, т.к. 64-х битные приложения не могут запускать 32-х битные DLL, которые активируются при запуске 32-х битного COM+ объекта 1С. |
Это выливается в некоторые трудности. Например, при попытке завершения “подвисшего” сеанса из следующей формы:
Сделать это, используя “COM-соединение с агентом сервера”, не получится, и операция завершится ошибкой.
Для того, чтобы вручную создать COM-соединение для 32-х битной версии платформы 1С, работающей на 64-х битной версии операционной системы, необходимы выполнить следующие шаги.
1. Необходимо зарегистрировать в системе 32-х битную библиотеку comcntr.dll. Для этого, откройте на сервере командную строку cmd.exe от имени администратора и выполните следующие команды:
C:\Users\администратор>cd C:\Program Files (x86)\1cv8\8.3.6.2390\bin C:\Program Files (x86)\1cv8\8.3.6.2390\bin>regsvr32 comcntr.dll
В появившемся окошке с сообщением об успешной регистрации библиотеки необходимо нажать “ОК”:
Папку bin надо искать по пути, куда у вас установлена текущая версия платформы 1С. На момент написания статьи – её номер 8.3.6.2390.
2. Запускаем консоль “Службы компонентов”: Пуск -> Администрирование -> Службы компонентов
. Раскрываем ветку “Службы компонентов”. Вызываем меню, кликнув правой клавишей мыши по ветке “Приложения COM+” и выбираем Создать -> Приложение
:
3. У вас откроется приветственное окно “Мастера установки приложений COM+”, в котором необходимо нажать “Далее”:
4. В следующем окне нажмите на “Создать новое приложение”:
5. Введите желаемое имя для нового приложения. В примере используется V83_ComConnector, отметьте способ активации, как “Серверное приложение” и нажмите далее:
6. В следующем окне выберите учетную запись, которую использует при старте агент сервера 1С. В примере – это учетная запись локального администратора сервера. Введите пару логин/пароль и нажмите “Далее”:
7. В следующем окне “Мастера…” нажмите “Далее”:
8. На следующем шаге, вам необходимо добавить (если имеет смысл) пользователя, от имени которого стартует агент сервера 1С и, соответственно, учетная запись которого будет использована для удостоверения работы нашего нового COM+ приложения. В окне данного примера указан только доменный администратор, от имени которого запущен “Мастер установки приложений COM+”, нажмите кнопку “Добавить”:
9. В следующем окне введите имя учетной записи, от имени которой работает агент сервера 1С, и нажмите “ОК”:
10. Вернувшись к “Мастеру…”, убедитесь, что искомая учетная запись добавилась и нажмите “Далее”:
11. Закройте “Мастер установки приложений COM+”, нажав “Готово”:
12. Мы вернулись к окну консоли “Службы компонентов”. Убедитесь, что приложение COM+ с вашим именем (в примере – V83_ComConnector) создан:
13. Раскройте дерево созданного приложения и, вызвав меню правой кнопкой мыши по ветви “Компоненты”, создайте новый компонент Создать -> Компонент
:
14. У вас откроется приветственное окно “Мастера установки компонентов COM+”, в котором необходимо нажать “Далее”:
15. В следующем окне нажмите на “Установка новых компонентов”:
16. С помощью окна explorer выберите библиотеку comcntr.dll, находящуюся по пути C:\Program Files (x86)\1cv8\8.3.6.2390\bin
, которую мы зарегистрировали в системе на первом шаге. Убедитесь, что путь к этой библиотеке совпадает с вашей версией платформы. В примере – это 8.3.6.2390. И нажмите “Открыть”:
17. В следующем окне “Мастера…” нажмите “Далее”:
18. Закройте “Мастера установки компонентов COM+”, нажав “Готово”:
19. Вы вернетесь к окну консоли “Службы компонентов”. Убедитесь, что в нашем приложении COM+ создалась новая компонента:
20. Вызовите её свойства:
21. И на вкладке “Безопасность” в окошке “Явно установленные для выделенных объектов роли:” отметьте мышкой CreatorOwner и нажмите “ОК”:
22. Вернувшись к консоли “Службы компонентов” закройте её и перезагрузите сервер.
После выполнения указанных действий, завершение “подвисших” сеансов в 1С версии 8.3 происходило без проблем. Единственное неудобство – теперь после каждого обновления платформы 1С на новую версию, необходимо проделывать данную операцию.
_______________
По мотивам данной статьи.