Имя: Пароль:
IT
Админ
Com, msword на сервере, отказано в доступе.
0 НаборДанных
 
31.10.25
16:47
Всем доброго.
Сервер, база файловая, RDP, внешняя ПФ взаимодействует с word, имеем шаблон в файле, дозаполняем данными.
Переезжаем на sql, сразу ошибка -2147024891(0x80070005): Отказано в доступе. при создании comобъекта msword Word=Новый COMОбъект("Word.Application");
Что-то там по правам посмотрели, добавили пользователю агента сервера 1С прав в настройках компонент, получили ошибку 1с -2146959355(0x80080005): Ошибка при выполнении приложения-сервера.
Пользователь агента штатно созданный при установке 1С, ок, сменили пользователя агента на полноправного админа, ошибка Отказано в доступе. Но теперь, при добавлении его в компонентах на локальный запуск и активацию не происходит изменений, ошибка "Отказано в доступе".
Слегка нет админов, я не понимаю, куда копать далее, если кто-то сталкивался, буду благодарен за совет. Гугл ответа не даёт.
Почему это важно? Разные ОС на пользователях, хотим обрабатывать файл на сервере, затем его возвращать на клиента и открывать, если есть чем, то откроет.
ОС сервера Windows Server 2022 Standard 21h2.
Повторюсь, на этом же сервере, при подключенных пользователях по RDP в файловой базе код отрабатывает.
Дополню, При переносе на клиента тоже отрабатывает, но есть нюанс в виде разных ОС на пользователях, поэтому не хотелось бы тащить файл на клиента и на нём обрабатывать.
1 Chai Nic
 
31.10.25
16:56
В файловой базе на рдп у вас не запускается отдельный серверный процесс от отдельного пользователя. То есть сервер и клиент работают от одного пользователя, который зашел на сервер.

А если используется сервер 1с, то там агент, кластер и рабочие процессы сервера запускаются обычно от имени локального пользователя USR1CV8. И если вы хотите работать на сервере с COM, то вам надо убедиться, что это работает именно в этом сеансе.

Попробуйте для примера дать этому пользователю право на интерактивный вход в систему, войдите под ним и запустите файловую базу с вашей обработкой - нормально сработает вызов COM-объекта?
2 НаборДанных
 
31.10.25
16:57
При всем при этом сам word открывается у пользователя сервера 1С, видно через диспетчер, но возвращает ошибку. В логах самой ОС
Microsoft Word: Rejected Safe Mode action : Word — произошла ошибка во время последнего запуска. Запуск в безопасном режиме может помочь устранить неполадку, но некоторые функции в этом режиме могут быть отключены.

Выполнить запуск в безопасном режиме?.
3 НаборДанных
 
31.10.25
16:59
(1)Первое, что проверили, зашёл под ним и открыл word/excel, интерактивно, просто открыл их, они открылись, но при формировании ПФ в 1С под пользователем агента(зашёл через RDP) в базе sql те же ошибки, в файле под ним же всё отрабатывает.
4 Chai Nic
 
31.10.25
17:01
Может COM-объекту ворда нужно наличие окружения рабочего стола и он отказывается запускаться без такового? Это же микрософт, от него всего можно ожидать.
5 НаборДанных
 
31.10.25
17:02
Важно или нет сервер 1с и клиент х64, хотя в файле аналогично х64, в компоненты ломились и под х64 и под х32.
6 НаборДанных
 
31.10.25
17:04
(4)Если речь про наличие desktop, то он есть, тк выполнялся интерактивный вход. Я даже под ним же(пользователем агента сервера 1С) запускал обработку и получал ошибку.
7 НаборДанных
 
31.10.25
17:19
Ожонь! Установил и запустил х32 клиента, отработал код.... Видимо проблема в х64 1С и х32 офисе, далее я не компетентен.
8 НаборДанных
 
31.10.25
17:23
Вывод, для х64 1С нужен х64 офис на сервере, или отдельная компонента доступа для х32. маки и линуксы х64, или переписывать под отдельно зареганную компоненту комконнектора х32 или ставить на сервер офис х64
9 НаборДанных
 
31.10.25
17:27
Почему в файловой базе х64 код отрабатывает остался на будущее.
10 Chai Nic
 
31.10.25
17:34
(8) Ну вообще-то как бы да. Ведь COM это по сути обращение к чужой dll в своем адресном пространстве, а не запуск нового процесса. И разрядность клиента и сервера должна совпадать.
11 arsik
 
гуру
31.10.25
17:41
(8) Не нужен. Нужно не через ком лезть, а через 1С БСП, которая распаковывает шаблон и собирает его вновь. И для этого даже офис не нужен.
12 НаборДанных
 
31.10.25
17:45
(11)Понимаю, если там docx, а если doc 97? Вроде doc никак не распаковать в xml
13 arsik
 
гуру
31.10.25
17:49
(12) Ну так возьми doc97 и сохрани его в docx. У вас там миллиард шаблонов что ли?
14 НаборДанных
 
31.10.25
17:51
(13)Нет, всего 13, но я понимаю о чем вы говорите, не хочу просто переписывать код, вопрос был выше, не в этом, тут лень ...да.
15 НаборДанных
 
31.10.25
17:52
И всё равно придётся переписывать код, просто потому что разные ОС на пользователях.
16 НаборДанных
 
31.10.25
17:53
Или поставить х64 офис, что будет быстрее и проще, кмк.
17 НаборДанных
 
31.10.25
17:54
Тут просто ПФ, нет какой-то масштабной задачи, влияющей на деятельность компании.
18 Garykom
 
гуру
31.10.25
18:00
Самое интересное что когда юзаешь СOM/OLE из Golang то глубоко пофиг на разрядность
А вот 1С не пофиг, да разрядность платформы 1C и MS Office должна совпадать
19 Garykom
 
гуру
31.10.25
18:03
(18)+ Это я к чему
Ставить MS Office на сервера 1С слегка накладно
Или даже нереально если сервер 1С на Linux крутится
Лучше использовать микросервис через http на отдельной машине (можно и виртуальной) с установленным MS Office