COMОбъект("Word.Application") #569139


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

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