Имя: Пароль:
1C
1С v8
в веб клиенте (на стороне сервера) не взлетает ОбъектВорд.Documents.Open
0 Игорь_МММ
 
14.01.25
20:11
почему?

суть: в общем модуле (Сервер, ВнешнееСоединение) имеем код:
        
        ШаблонФайлИмя = ПолучитьИмяВременногоФайла(".docx");
    Шаблон.Записать(ШаблонФайлИмя);
    
    ОбъектВорд = Новый COMОбъект("Word.Application");  
    ОбъектВорд.ScreenUpdating = Ложь;
    
    ДокументВорд = ОбъектВорд.Documents.Open(ШаблонФайлИмя);

при вызове из тонкого клиента - работает, из веб-клиента - не работает (ДокументВорд = неопределено, временный файл при этом записывается).

Полдня изучаю сеть ... в чем разница, если код исполняется на сервере, то как влияет в каком режиме запущен клиент?
1 timurhv
 
14.01.25
20:51
(0) Было давно такое при обращении веб-сервисов. Попробуйте шаблон скопировать/переместить в какую-нибудь папку и потом уже его открывать.

И если есть БСП, то надежнее будет переделать под распаковку docx в виде zip, вставку текста и сборку docx обратно.
2 Игорь_МММ
 
14.01.25
21:30
(1) "Шаблон" - это двоичные данные. Изначальный шаблон договора в виде ДД передается в эту функцию.
3 AutoAns
 
14.01.25
21:50
(0) Вроде бы как, чтоб открыть новый файл Word на основе шаблона надо вызывать не .Open(ШаблонФайлИмя) , а .Add(ШаблонФайлИмя), если, конечно, идет речь о создании и заполнеии нового документа из шаблона.
На вопрос о разных точках запуска и разном поведении MSWorda - не знаю.
4 Волшебник
 
14.01.25
21:51
(3) А Вы тут при чём?
5 Игорь_МММ
 
14.01.25
23:58
(3) Add не взлетает и на тонком клиенте (
6 AutoAns
 
15.01.25
00:20
(5) Наверное, .add - это когда использовать именно шаблон Worda .dots, чтобы из него создать копию для редактирования и сохранения нового документа в обычный .docx.
Я с ходу не обратил внимания, что у тебя другой механизм создания  нового документа Ворд.
7 AutoAns
 
15.01.25
00:21
(6) *.dotx, а не .dots
8 Волшебник
 
модератор
15.01.25
01:34
Общаетесь, да? А ничего, что я тоже здесь?!
9 sikuda
 
15.01.25
09:06
(0) И тут Игорь с десятилетним опытом понял, что COMОбъект не работает в Вэб-клиенте.
10 Игорь_МММ
 
15.01.25
10:02
(9) собственно понятно что проблема в вебклиенте и COMОбъекте. Но код же исполняется на стороне сервера ... я где-то тут туплю, поэтому и основной вопрос, который хотел прояснить для себя:

(0) "... если код исполняется на сервере, то как влияет в каком режиме запущен клиент? "
11 sikuda
 
15.01.25
10:38
(10) Ну если у тебя Windows сервер и на нем установлен MS Office(был зарегистрирован Com объект на сервере) то все будет работать.
12 timurhv
 
15.01.25
10:47
(2) Так скопируйте\переместите после:
Шаблон.Записать(ШаблонФайлИмя);

Особо не разбирался когда с подобным столкнулся, но предположу что файл блокирутся платформой 1С и разное поведение тонкого клиента и веб-клиента (веб-сервисов в моем случае).
С ИТС:
Кроме того, при использовании метода ПолучитьИмяВременногоФайла платформа 1С:Предприятие сохраняет контроль над такими файлами и автоматически удаляет их
13 arsik
 
гуру
15.01.25
10:53
(0) Вы сюда пришли поиздеваться?
COMОбъект и веб клиент
14 Garykom
 
гуру
15.01.25
11:06
(0) Расширение от 1С в браузере поставь, должно помочь
15 Игорь_МММ
 
15.01.25
14:18
(14) стоит
(11) собственно, я веду разработку в файловой базе. Но есть куча клиентов с самыми разными вариантами подключения - ошибка одна.
(12) идея хорошая была - но не помогло, пробовал также не временный файл брать, а созданный для этой цели - не канает
(13) там почитайте - проблема решена была. Если у вас есть понимание, то просто поделитесь - плюс вам в карму будет
16 arsik
 
гуру
15.01.25
14:53
(15) Так у вас сейчас апач или иис?
17 sikuda
 
15.01.25
14:58
(15) А точно надо такое извращение испытывать ВнешнееСоединение + Вэбклиент
Насколько я понимаю ВнешнееСоединение это COM соединение из клиента компьютера пользователя.
https://v8.1c.ru/platforma/vneshnee-soedinenie/
18 stix2010
 
15.01.25
15:03
(0) а для чего Вы вообще для docx COM используете? в БСП давно все завезли кроссплатформенное.
19 Игорь_МММ
 
15.01.25
16:00
(16) Апач
(18) перепиливую уже по схеме docx -> zip -> преобразование xml, в БСП кстати где там?

собственно для себя я вопрос закрыл, приобрел в помощь вот это: https://infostart.ru/1c/tools/675307/?ysclid=m5xjkmv5l6171872948

но осадочек, так сказать остался )) ... почему таки серверная процедура по -разному отрабатывает?

пс. спасибо также (1)
20 Fragster
 
гуру
15.01.25
16:11
для файловой базы:
сторона сервера в тонком клиенте - это клиентский процесс 1с
сторона сервера в веб клиенте - это процесс веб сервера

соответственно надо чтобы у пользователя, под которым запускается веб сервер (для IIS это обычно IUSR) был доступ к соответствующим COM-объектам

для серверной базы сторона сервера - это rphost, соответственно, у пользователя, под которым он стартует должен быть этот доступ.

как дать доступ - в поиск.
21 Fragster
 
гуру
15.01.25
16:13
а, еще если процесс 64битный, а ком объекты 32битные - нужны доп заморочки
22 stix2010
 
15.01.25
16:47
23 Игорь_МММ
 
15.01.25
16:58
(20) (21) (22) спасибо
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой