COM соединение в фоновом задании #753332


#0 by Viktorilia
Добрый день. Задача следующая. Перенести подключение к удаленной базе в фоновое задание. Вызов процедуры  происходит из формы списка документа:
#1 by Viktorilia
Извиняюсь вот эта процедура в модуле списка документа:
#2 by Viktorilia
В модуле Фоновых заданий:  Процедура COMСоединение Экспорт
#3 by Апош
назови свою процедуру "COMСоеденение". это уже будет не зарезервированное слово
#4 by Viktorilia
Пременная глV21Object  определяется в моле приложения: перем  глV21Object Экспорт;
#5 by Viktorilia
При запуске фонового задания переменная не видится. Свойства Модуля фонового задания:Внешнее соед, на клиенте, сервер, вызов сервера
#6 by Viktorilia
база серверная
#7 by Остап Сулейманович
Не увидел вопроса... Но если дело в том, что в модуле фонового задания не видно переменной - то ее объявить нужно в модуле внешнего соединения. Модуль приложения компилируется при интерактивном запуске. А фоновое работает из под внешнего соединения.
#8 by Viktorilia
Ок, Спасибо.Скажите а как дальше работать с объектом ComConnector. Сервер 64-х разрядный. Т.е. нужно ли регистрировать библиотеку? Я прочитала про обертку COM+
#9 by Viktorilia
имею ввиду библиотеку comcntr.dll
#10 by olegves
имхо, лучше уж сразу и данные прочитать в фоновом задании (или там обмен какой)
#11 by Viktorilia
да мне хотя бы к базе подключиться
#12 by Viktorilia
Суть поняла, но почему то все равно переменная не определена.
#13 by Остап Сулейманович
В общем случае библиотеку нужно регистрировать. Но если ОНО у вас работает вне фоновых заданий то ОНО уже зарегистрировано и никаких больше регистраций не нужно.
#14 by olegves
не факт. Фоновое задание выполняется с правами (по умолчанию) пользователя, под которым стартован сервер 1С, вот этому пользователю и нужны права на компоненту. Если этот пользователь на том же компе, где уже зарегана компонента, то все ОК, а если на другой машинке, то на ней и нужно регать сомстрл
#15 by Остап Сулейманович
Таки да. Но права на использование и регистрация самой компоненты все-таки разные вещи. Компонента может быть зарегистрирована, а прав на запуск нет. И тогда повторная регистрация не поможет.
#16 by Viktorilia
Я больше даже имею ввиду похожую ситуацию , найденную в интернете: Объект V81.Application выполняется в рамках нового процесса 1cv8.exe. Объект V81.COMConnector является внутрипроцессным сервером. На удаленном компьютере нет процесса, в котором он может быть создан. Чтобы объект V81.COMConnector можно было создать на удаленном компьютере, регистрации компоненты comcntr.dll в COM утилитой regsvr32.exe недостаточно. Требуется выполнить регистрацию на удаленном компьютере компоненты comcntr.dll в качестве приложения COM+.
#17 by Viktorilia
Еще такой момент:64 битные приложения не могут запускать 32 битные DLL которые активируются при запуске 32 битного COM объекта 1С. Для решения проблемы нужно воспользоваться оберткой COM+ которая являясь 64 битным приложением может взаимодействовать с 32 битными библиотеками.
#18 by Viktorilia
Для это необходимо выполнить следующие шаги: Запускаем консоль «Службы компонентов» (например: Пуск ? Администрирование ? Службы компонентов. В ветке Приложения COM+ добавляем новое приложение: Создать ? Приложение На вопрос «Установка или создание нового приложения» - выбираем «Создать новое приложение». Имя нового приложения лучше написать чтобы было понятно о чем речь: V8_ComConnector, способ активации - «серверное приложение». Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С. В ветке созданного приложения переходим на ветку «Роли» открываем роль «CreatorOwner» и далее в разделе «Пользователи» создаем пользователя - учетную запись под которой работает сервер 1С. В ветке созданного приложения переходим на ветку «Компоненты» и создаем компонент: Создать ? Компонент Выбираем «Установка новых компонентов», и в диалоге выбираем нужную DLL-ку (comcntr.dll) Открываем свойства только что созданного компонента, идем на вкладку «Безопасность», проверяем в списке «Явно установленные для выделенных объектов роли» стоит ли «птичка» напротив роль CreatorOwner - если нет, тогда устанавливаем эту «птичку».
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С