Имя: Пароль:
1C
1С v8
Проблема с word-ом на стороне сервера
,
0 livingstone
 
08.07.15
15:36
Добрый день.

Платформа 8.3. Конфигурация - Документооборот. База серверная.

Проблема следующая:
При выполнении команды "Док = WordApp.Documents.Add(ПутьКФайлуНаДиске);" выводится сообщение "Ошибка при вызове метода контекста (Add), Произошла исключительная ситуация (Microsoft Word): Ошибка в Word."

Если этот кусок кода будет выполнятся на клиенте, то все отрабатывается нормально. Ошибка только на сервере.

ПутьКФайлуНаДиске = локальный С:\Юсерзс...., сетевой не пробовал, думаю проблема не в этом.

Сервер 1с установлен там же.

Подскажите пожалуйста, в чем может быть проблема.
1 Лефмихалыч
 
08.07.15
15:50
на сервер ворд установи
2 livingstone
 
08.07.15
15:53
Ворд установлен.
3 Мыш
 
08.07.15
15:55
На сервере с юзерсами проблема. Есть ли у пользователя, от имени которого работает сервер приложений права на тот конкретный каталог?
4 Лефмихалыч
 
08.07.15
15:55
значит обеспечь, чтобы файл лежал на сервере вот тут "С:\Юсерзс...." до вызова Add
5 livingstone
 
08.07.15
15:58
Файл там точно есть. Не думаю, что проблема с правами, так как с клиента ведь все срабатывает.
6 Fish
 
08.07.15
15:59
(5) С клиента ты обращаешься к файлу под другим пользователем.
7 Лефмихалыч
 
08.07.15
15:59
(5) отладчик не предлагать?
8 Мыш
 
08.07.15
15:59
(6) Товарищ "не думает". Так шта не мешайте.
9 livingstone
 
08.07.15
16:03
Процедура
1. Копирую некий файл вордовский в С:\Юзерс. (т.е. права явно есть)
2. WordApp = Новый COMОбъект("Word.Application")
   Док = WordApp.Documents.Add(ПутьКФайлуНаДиске);
КонецПроцедуры

(7) отладчиком уже все по несколько раз проходил.
10 Лефмихалыч
 
08.07.15
16:05
(9) ты на клиентской машине в С:\Юзерс копируешь?
11 Fish
 
08.07.15
16:05
(8) Типа: "а что тут думать, прыгать надо"? :))
12 livingstone
 
08.07.15
16:07
(10) нет, на сервере.
т.е. С:\Юзерс - это каталог сервера.
13 Fish
 
08.07.15
16:12
(12) Читай (3) и (6) ещё раз.
14 hhhh
 
08.07.15
16:21
(12) там users\...
15 yukon
 
08.07.15
16:47
Вопросы серверной автоматизации Office
https://support.microsoft.com/kb/257757

Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
16 livingstone
 
09.07.15
07:50
(13) Проблема не в правах, права на каталог назначены. К тому же, если были бы проблемы с правами, серверный метод не смог бы даже скопировать файл в каталог. В (9) я описал суть метода. Ошибка возникает с "Док = WordApp.Documents.Add(ПутьКФайлуНаДиске);". Видимо проблема с самим вордом. Но тогда непонятно, почему с клиента проблемы не возникает.
17 Dmitri888
 
09.07.15
09:03
А word х32 или х64?
18 Krolik Bezobraznik
 
09.07.15
09:09
Если 1С обращается к диску из серверного модуля, то обращение происходит под тем пользователем, под которым у вас запущен сервер 1С. Посмотрите в запущенных сервисах, под каким пользователем у вас запущен сервер. Нужно настроить права доступа к этой папке для пользователя, под которым запущен сервер.

Сам недавно столкнулся, у меня фоновое задание обращается в файлу на диске, процедура в серверном модуле. После того как дал доступ, все заработало.
19 Dmitri888
 
09.07.15
09:14
17+ И какой сервер установлен 32 или 64?
20 Krolik Bezobraznik
 
09.07.15
09:18
(0) Проверьте доступ к папке. В вашем серверном модуле сделайте функцию с кодом

Функция ПроверитьДоступКПапке(Путь)
    
    КаталогНаДиске = Новый Файл(Путь);
    
    Возврат КаталогНаДиске.Существует();
    
КонецФункции


Посмотрите, что она вам вернет, если ЛОЖЬ, а пака есть, то делайте как я написал в (18)
21 drcrasher
 
09.07.15
09:36
Копипаста:
При работе с Excel на сервере ОБЯЗАТЕЛЬНО!!! создать папку C:\Windows\SysWOW64\config\systemprofile\Desktop или C:\Windows\System32\config\systemprofile\Desktop (в зависимости от разрядности вашей системы).
22 livingstone
 
10.07.15
12:25
Вобщем сделал как в (21). Теперь все работает. Всем большое спасибо.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой