новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Особенности работы с COM-объектами на 64-битной платформе "1С: Предприятие 8.2"

  • Добавить свою публикацию
  • для этого требуется регистрация

Одна из проблем, возникающих после установки 64-битного сервера 1С, заключается в том, что 64-битные приложения не могут запускать 32-битные DLL, которые, например, инициализируются системой при создании COM-объекта. Таким образом, код вида


 

V82 = Новый COMОбъект( «V82.ComConnector»);

 

ИЛИ


 

Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");

 

на стороне сервера выполнен не будет. Точнее, его выполнение приведет к ошибке: «Class not registered»

Решить данную проблему можно с помощью создания 64-битного приложения COM+. Данное приложение способно взаимодействовать с 32-приложениями.

Итак

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

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

.

  1. Найдем ветку «Приложения COM+» и       добавим новое приложение:

Создать - Приложение

  1. На вопрос "Установка или создание нового приложения" – необходимо ответить:"Создать новое приложение".
  2. Зададим имя нового приложения: V8ComConnectorApp; способ активаци: "серверное приложение".
  3. Учетная запись для запуска приложения: здесь нам надо выбрать учетную запись под которой работает сервер 1С.
  4. В ветке созданного приложения находим и выделяем ветку "Роли", выбираем роль "CreatorOwner", а затем в разделе "Пользователи" создаем пользователя - учетную запись, под которой работает сервер 1С.
  5. В ветке созданного приложения переходим на ветку "Компоненты" и создаем компонент:

Создать - Компонент

 

  1. Выбираем "Установка новых компонентов", и находим нашу DLL-компоненту.
  2. Заходим в свойства установленного компонента и на вкладке "Безопасность", списке "Явно установленные для выделенных объектов роли" включаем флажок напротив роли CreatorOwner.

Важно: Мы создали приложение с именем "V8ComConnectorApp", а это значит что в коде мы должны создавать COM-объект с аналогичным ProgID. То есть


 

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

 

Это не очень удобно в том случае, если мы предполагаем, что наш код будет исполняться и на сервере, и на клиенте, где может быть установлена 32-битная версия «1С: Предприятие». В этом случае придется использовать подобный код


 

#Если Сервер Тогда

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

#Иначе

Объект = Новый COMОбъект("V82.ComConnector");

#КонецЕсли

 

 

 
0
Читайте также
Настройка 1С 8.2 для вашей компании
Настройка 1С 8.2 выполняется при помощи интерфейса или путем редактирования конфигурационного файла программы
Создаем бизнес-процесс в несколько шагов
Создание бизнес-процесса простым способом
COM-соединение при поддержке WEB-сервиса
Эффективный способ СОМ-соединения
Разработки
Просмотрщик COM-объектов
Просмотр СОМ-объектов
драйвер и обработка для подключения ЧПМ Меркурий 130 к 1С:Розница 8.2
Обработка для подключения ЧПМ к 1С Розница 8.2
Обмен данными - 1С:ТиС 7.7 и Битрикс, HostCMS, WebAsyst, UMI.CMS
1C ТиС и сайт формата CommerceML 2.0. Обмен данными
Еще от автора
≡ к списку статей