|
COMОбъект("Word.Application") | ☑ | ||
---|---|---|---|---|
0
thomY100
12.09.11
✎
15:42
|
Привет, при попытке создать
Word = Новый COMОбъект("Word.Application") 1с выдает ошибку invalid class string, в чем может быть дело, подскажите пожалуйста? |
|||
1
ДенисЧ
12.09.11
✎
15:43
|
Наверное, нет такого класса в системе...
|
|||
2
Живой Ископаемый
12.09.11
✎
15:44
|
а если написать
Word = Новый COMОбъект("LauncherOfTheRockets.Application") не выдает? |
|||
3
andrewks
12.09.11
✎
15:44
|
2007-й? секвестированный?
|
|||
4
Axel2009
12.09.11
✎
15:47
|
потому что надо писать 12 или 11..
|
|||
5
thomY100
12.09.11
✎
15:50
|
оффис 2003-й
|
|||
6
thomY100
12.09.11
✎
15:51
|
как правильно написать?
|
|||
7
Axel2009
12.09.11
✎
15:51
|
то 10
|
|||
8
thomY100
12.09.11
✎
15:52
|
а полностью строку можно, я что-то туплю
|
|||
9
andrewks
12.09.11
✎
15:53
|
Word.Application.10
|
|||
10
andrewks
12.09.11
✎
15:53
|
хотя сомнительно, что дело только в этом
|
|||
11
thomY100
12.09.11
✎
15:53
|
спасибо
|
|||
12
thomY100
12.09.11
✎
15:56
|
не помогает, может ли дело быть в том что код исполняется на сервере?
|
|||
13
andrewks
12.09.11
✎
15:57
|
(12) а сервер под линем, поди?
|
|||
14
thomY100
12.09.11
✎
15:57
|
нет, вигда
|
|||
15
ДенисЧ
12.09.11
✎
15:58
|
А на сервере форд-то есть?
|
|||
16
thomY100
12.09.11
✎
16:00
|
есть
|
|||
17
Живой Ископаемый
12.09.11
✎
16:02
|
32-битный?
|
|||
18
thomY100
12.09.11
✎
16:02
|
да
|
|||
19
andrewks
12.09.11
✎
16:04
|
игра угадай-ка. кто первый отгадает, тому приз - аплодисменты
|
|||
20
Живой Ископаемый
12.09.11
✎
16:06
|
(19) +150 000
|
|||
21
thomY100
13.09.11
✎
10:51
|
переустановка офиса на сервере частично помогла, но теперь повисает сеанс, кто-нибудь может что-то посоветовать?
|
|||
22
aleks-id
13.09.11
✎
10:52
|
(21) заменить ДНК?
|
|||
23
thomY100
13.09.11
✎
10:53
|
а по делу?
|
|||
24
Живой Ископаемый
13.09.11
✎
10:57
|
почему мы по делу а ты нет?
|
|||
25
thomY100
13.09.11
✎
11:00
|
без знаков препинания фразу не понять
|
|||
26
Стальная Крыса
13.09.11
✎
11:12
|
все просто: там где создается ентот объект такого класса не существует
|
|||
27
Живой Ископаемый
13.09.11
✎
11:12
|
2(26)у него уже другая ошибка, но какая - он молчит какая... да и вообщем-то неинтересно никому...
|
|||
28
Стальная Крыса
13.09.11
✎
11:15
|
ключевая фраза - "на сервере" :)
|
|||
29
thomY100
13.09.11
✎
11:16
|
потому что непонятно какая, при открытии объекта в котором вызывается Word = Новый COMОбъект("Word.Application"), 1с просто повисает
|
|||
30
Стальная Крыса
13.09.11
✎
11:18
|
ОС х64 - а офис х32 ?
|
|||
31
thomY100
13.09.11
✎
11:29
|
да
|
|||
32
thomY100
13.09.11
✎
11:30
|
в этом проблема?
|
|||
33
Стальная Крыса
13.09.11
✎
11:34
|
а на какой стороне код выполняется ?
|
|||
34
thomY100
13.09.11
✎
11:34
|
на сервере
|
|||
35
Стальная Крыса
13.09.11
✎
11:35
|
а сервер 1С:Предприятия поди тоже х64 ?
|
|||
36
thomY100
13.09.11
✎
11:37
|
точно, как с этим бороться?
|
|||
37
Живой Ископаемый
13.09.11
✎
11:38
|
вы забыли еще спросить на какой стороне выполняется код
|
|||
38
Живой Ископаемый
13.09.11
✎
11:38
|
ну в смысле еще последний самый надежный раз...
|
|||
39
aleks-id
13.09.11
✎
11:40
|
(38) да и так все давно ясно. надо тупо вордовский СОМ ручками зарегать и все...
|
|||
40
Стальная Крыса
13.09.11
✎
11:40
|
(39) нет, этим дело не кончится
|
|||
41
Живой Ископаемый
13.09.11
✎
11:41
|
2(39)а что на счет прав?
|
|||
42
thomY100
13.09.11
✎
11:42
|
а как его руками зарегать?
и что делать после если этим не кончится? |
|||
43
Стальная Крыса
13.09.11
✎
11:42
|
вызов объекта х32 не может быть осуществлен из х64 приложения.
в данном случае, как я понял код выполняется, на сервере 1С:Предприятие и сервер этот х64 ? если так - то тут только "технически" :) |
|||
44
aleks-id
13.09.11
✎
11:43
|
(41) я у себя всем раздал. но особо упоротые могут дать только юзеру от чьего имени запускается сервер :)
|
|||
45
aleks-id
13.09.11
✎
11:45
|
(43) неправда. надо руками ком сделать и указать ему что оно импортится из 32-разрядного
|
|||
46
thomY100
13.09.11
✎
11:46
|
(45) а как это сделать можешь написать?
|
|||
47
Стальная Крыса
13.09.11
✎
11:48
|
(45) если делать в лоб - правда.
в данном случае нужна "обертка COM+" |
|||
48
Стальная Крыса
13.09.11
✎
11:51
|
(один умный человек написал маленькую статейку по этому делу, адреса не помню, ниже привожу то что я себе в памятки написал)
Содержание статьи Например для вызова V82.ComConnector на стороне 64-битного сервера 1С. Это происходит потому, что 64 битные приложения не могут запускать 32 битные DLL которые активируются при запуске 32 битного COM объекта 1С. Для решения проблемы нужно воспользоваться оберткой COM+ которая являясь 64 битным приложением может взаимодействовать с 32 битными библиотеками. Для это необходимо выполнить следующие шаги: 1. Запускаем консоль "Службы компонентов" (например: Пуск -> Администрирование -> Службы компонентов. 2. В ветке Приложения COM+ добавляем новое приложение: Создать -> Приложение 3. На вопрос "Установка или создание нового приложения" - выбираем "Создать новое приложение". 4. Имя нового приложения лучше написать чтобы было понятно о чем речь: V8_ComConnector, способ активации - "серверное приложение". 5. Учетная запись для запуска приложения: выбираем учетку под которой стартует сервер 1С. 6. В ветке созданного приложения переходим на ветку "Роли" открываем роль "CreatorOwner" и далее в разделе "Пользователи" создаем пользователя - учетную запись под которой работает сервер 1С. 7. В ветке созданного приложения переходим на ветку "Компоненты" и создаем компонент: Создать -> Компонент 8. Выбираем "Установка новых компонентов", и в диалоге выбираем нужную DLL-ку (comcntr.dll) 9. Открываем свойства только что созданного компонента, идем на вкладку "Безопасность", проверяем в списке "Явно установленные для выделенных объектов роли" стоит ли "птичка" напротив роль CreatorOwner - если нет, тогда устанавливаем эту "птичку". типа все. |
|||
49
thomY100
13.09.11
✎
11:54
|
а если сервер 1с 32-х битный, то как?
|
|||
50
Стальная Крыса
13.09.11
✎
11:55
|
(49) тогда это не ваш случай :)
|
|||
51
Стальная Крыса
13.09.11
✎
11:56
|
а windows х64 ?
|
|||
52
thomY100
13.09.11
✎
11:56
|
да, винда точно 64
|
|||
53
Стальная Крыса
13.09.11
✎
11:59
|
тогда классы должны регистрироваться механизмом WOW64
|
|||
54
Стальная Крыса
13.09.11
✎
11:59
|
только тогда их можно будет пользовать
|
|||
55
thomY100
13.09.11
✎
12:04
|
а можно вкратце что а такое wow64 и как это работает?
|
|||
56
thomY100
13.09.11
✎
16:03
|
Com+ поставил, но зависание по прежнемк проиходит - на строке Word.Documents.Add(ИмяФайла);
есть ещё варианты в чем проблема? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |