Имя: Пароль:
1C
 
Не создаётся COM-объект в обычной форме
,
0 repin_mike
 
25.04.17
09:32
Привет всем!

8.2, серверная, платформа и сервер 1С установлены физически на одной машине, на этой же машине установлена библиотека COM. У конфигурации две формы, одна управляемая вторая обычная. Беру управляемую и пишу:

&НаКлиенте
Процедура Подписать(Команда)
    ПодписатьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПодписатьНаСервере()
        Try
            PDF = New COMОбъект("DebenuPDFLibrary64AX1113.PDFLibrary");
        Except
            Message("Не зарегистрирована библиотека!");
            Message(ErrorDescription());
            Return;
        EndTry;    
КонецПроцедуры


Всё замечательно отрабатывает, COM-объект создаётся. Теперь беру обычную форму и в модуле формы пишу:

Процедура Подписать()
        Try
            PDF = New COMОбъект("DebenuPDFLibrary64AX1113.PDFLibrary");
        Except
            Message("Не зарегистрирована библиотека!");
            Message(ErrorDescription());
            Return;
        EndTry;    
КонецПроцедуры


Говорит "Ошибка при вызове конструктора (COMОбъект): Класс не зарегистрирован"

В чём может быть дело?
1 Lexey_
 
25.04.17
09:36
(0) в клиенте и сервере
2 Lexey_
 
25.04.17
09:36
+(1), вернее, просто в клиенте
3 repin_mike
 
25.04.17
09:39
(2) Ну я и сам догадываюсь что "из-под клиента" почему-то СОМ объект не виден, а "на сервере" виден. Но почему? Клиент толстый, установлен на тот же компьютер, что и сервер 1С.
4 Неверный Параметр И
 
25.04.17
09:40
Я бы сказал в отличии. Клиента отправлено сервера. В два раза.
5 Неверный Параметр И
 
25.04.17
09:40
от сервера
6 dezss
 
25.04.17
09:42
(0) 64х, а платформа клиента небось 32х?
7 dezss
 
25.04.17
09:42
(6) upd х64 и х32
8 Лефмихалыч
 
25.04.17
09:42
(0) причина в отсутствии прав у виндового пользователя, под которым запускается платформа во втором случае. В первом случае у тебя СОМ-объект создается под правами пользователя службы сервера, а во втором - под твоим виндовым пользователем.
9 repin_mike
 
25.04.17
09:47
(6) да
(8) Если дело в этом, а не в (6), то можно ли это победить как-нибудь? Напр. создавать COM объект в общем модуле с галочкой "Сервер"?
10 бомболюк
 
25.04.17
09:47
в разрядности причина. COM объект у тебя судя по названию 64 битный.
11 dezss
 
25.04.17
09:48
(9) если на серваке под админом, то (8) не прокатит...
12 бомболюк
 
25.04.17
09:48
ну и да, судя не только по названию, но и потому, что под сервером он запускался успешно.
13 Лефмихалыч
 
25.04.17
09:49
(9) надо зайти в оснастку COM+ приложений и там добавить всех, кого надо, на закладку с правами.
14 repin_mike
 
25.04.17
09:49
(10) Да, COM объект 64разрядный, сервер тоже 64разрядный, платформа 32хразрядная. Из обычной формы получается вообще никак, только платформу 64 ставить? Или есть варианты?
15 бомболюк
 
25.04.17
09:50
может есть 32хбитный вариант?
16 repin_mike
 
25.04.17
09:50
(14) ну или библиотеку 32 искать..
17 dezss
 
25.04.17
09:51
(14) а в ОФ нельзя использовать директивы компиляции?
18 Лефмихалыч
 
25.04.17
09:51
да нормально с битами всё. Прав нет прост
19 repin_mike
 
25.04.17
09:52
(17) я не знаю
20 dezss
 
25.04.17
09:52
(17) снимаю вопрос...низя, походу...
21 repin_mike
 
25.04.17
12:05
(6) Взлетело, дело было именно в этом. Нашёл 32хразрядную библиотеку и всё чудесно работает. Спасибо за наводку.