Имя: Пароль:
1C
1С v8
COMОбъект и веб клиент
0 Игорь_МММ
 
09.03.19
16:00
то что в клиенте из под Веб нельзя создавать COMОбъект - это знаю. Но НаСервере, что тоже нельзя?
Суть проблемы ОбменMSWord - общий модуль с компиляцией на сервере. В тонком работает, в в веб возвращает следующее:

{ОбщийМодуль.ОбменMSWord.Модуль(6)}: Ошибка при вызове конструктора (COMОбъект)
    ОбъектВорд = Новый COMОбъект("Word.Application");
по причине:

по причине:
-2147467262(0x80004002): Интерфейс не поддерживается
1 Garykom
 
гуру
09.03.19
16:24
Сервер на линуксе?
2 ДенисЧ
 
09.03.19
18:18
(1) Не то сообщение
(0) А там вообще ворд есть?
3 Игорь_МММ
 
09.03.19
19:01
(1) база файловая
(2) да, в тонком же работает
4 RomanYS
 
09.03.19
19:06
(3) А в тонком через веб-сервер работает?
5 Игорь_МММ
 
09.03.19
19:12
(4) нет, локально
6 RomanYS
 
09.03.19
19:20
(5) "локально" серверный код на файловой базе выполняется локально, а через веб-сервер к файловой базе серверный код выполняется на машине веб-сервера. И там ворда или нет или он не доступен по каким-то причинам
7 Игорь_МММ
 
09.03.19
19:52
если я правильно копаю, то у меня в DCOM нет Ворда. Как понять есть ворд на web-сервере? у меня IIS.
8 Asmody
 
09.03.19
20:01
(7) Обычно Word появляется на машине после того, как кто-нибудь установит туда MS Office
9 Patriot1C
 
09.03.19
21:09
(0) Похоже COM не установлен на Сервер. Он не ставиться по умолчанию как устаревшая технология.
10 Игорь_МММ
 
09.03.19
23:12
(9) можно поподробнее? что делать то?
11 Garykom
 
гуру
09.03.19
23:26
Объясни нафуя тебе Word на сервере? Есть куча библиотек которые умеют файлы Word'а писать же
12 Игорь_МММ
 
10.03.19
08:49
(11) на сервере лежит шаблон договора в ворде. Клиенты соответственно заполняют его своими данными.
13 Мимохожий Однако
 
10.03.19
10:00
(12) Ответь на ВСЕ вопросы и замечания.
14 Игорь_МММ
 
10.03.19
10:20
(13) считал, что все что предлагали прочел и погуглил.. что по вашему я пропустил?
веб - для меня тема новая, переработали конфу под веб-клиент, теперь лезут косяки связанные хз с чем (так для меня, однако). Очень бладгодарен был бы за дельный совет=помощь.
15 Мимохожий Однако
 
10.03.19
10:33
(14) Когда ответить по всем замечаниям, то наверняка придёт уточнение по тем пунктам, которые не понял или проигнорировал. Коллективный разум-это сила. Даже в мусорной куче советов может затеряться бриллиант правильного ©
16 Мимохожий Однако
 
10.03.19
10:33
*ответишь
17 DrZombi
 
гуру
10.03.19
15:56
(0) Сервер Вынь х64?  Сервер 1С х64 ?
18 DrZombi
 
гуру
10.03.19
15:57
+ и да, офис на сервере установлен?
Версия офиса х64?
19 Игорь_МММ
 
10.03.19
16:12
(17) 1С сервера нет - база файловая.
(18) офис на компьютере где исполняется серверный код - да, установлен. В тонком клиенте все работает.
Как я понял из комментов в ветке - проблема в том, что офиса нет на веб-сервере. Не могу понять как это решить
20 Мимохожий Однако
 
10.03.19
16:16
(19)Упроси админов на компьютере, где веб-сервер запущен установить Word. Это же очевидно.
21 Игорь_МММ
 
10.03.19
16:48
(20) на этом компьютере он установлен ... зуб даю)
в конце концов, в режиме отладки веб-клиента идет эта же ошибка:

{ОбщийМодуль.ОбменMSWord.Модуль(6)}: Ошибка при вызове конструктора (COMОбъект)
    ОбъектВорд = Новый COMОбъект("Word.Application");
: Интерфейс не поддерживается
22 Игорь_МММ
 
10.03.19
16:49
+ я сам сижу сейчас за этим компьютером))
23 Игорь_МММ
 
10.03.19
16:59
(20) ->(19) то что пишу "Как я понял из комментов в ветке - проблема в том, что офиса нет на веб-сервере" : я так понимаю что ворд надо как-то прописать в IIS, помимо того что он просто есть на машине
24 Игорь_МММ
 
10.03.19
17:02
+ короче, машина на которой установлен Веб-сервер и есть машина где лежит база 1С.
25 DrZombi
 
гуру
10.03.19
17:16
(24) "Пацак", ты нормально народу опиши, что у тебя там стоит.
Вот ничерта не понял, есть у тебя на веб сервере офис или нет.
26 Мимохожий Однако
 
10.03.19
17:17
Разрядность 1С какая? Word  как СОМ зарегистрирован? Зря не расписываешь подробно
27 Игорь_МММ
 
10.03.19
17:24
(25) -> (7)  я же писал "как понять стоит он на веб-сервере?". вы под веб сервером что понимаете: физическую машину, железо или программное обеспечение (в моем случае IIS)? на физической машине (где лежит база 1С и IIS) ворд стоит.
(26) 1С 32, судя по диспетчеру задач. "Word  как СОМ зарегистрирован?" - это как понять,где посмотреть ))?
28 Мимохожий Однако
 
10.03.19
17:31
(27) Попробуй зарегистрировать файл comcntr.dll в папке bin твоей 1С
29 Игорь_МММ
 
10.03.19
17:42
(28) https://hostingkartinok.com/show-image.php?id=4a45a22dbac8ec7ed68ab9c08fa0db23
поробовал запустить: ошибка выходит таже
30 Мимохожий Однако
 
10.03.19
17:45
https://its.1c.ru/db/bsp246doc#content:52:hdoc:_top:соединение%20word
Возможно, зря бьёшся с веб-клиентом.
Вот цитата из ссылки:"Важно! Печать из макетов офисных документов в форматах Microsoft Word и OpenOffice.org Writer не доступна в веб-клиенте."
31 Игорь_МММ
 
10.03.19
17:55
(30) это скорее относится к подсистеме Печать
ругается на СOMОбъект, а СП говорит:

COMОбъект (COMObject)
Конструкторы:
По имени приложения
Описание:
Создает COM-объект (например, Word, Excel и т.д.). Методы и свойства СОМ-объектов в дальнейшем становятся доступными через данный объект.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
32 Игорь_МММ
 
10.03.19
17:57
+ все больше склоняюсь, что с правами что-то .. но уже плясал вокруг этого, но не поборол
33 Мимохожий Однако
 
10.03.19
18:01
Если права, то права пользователя, под которым запущена служба веб-сервера
34 dmpl
 
10.03.19
20:13
(12) Преобразуй в HTML и вставляй данные клиентов по шаблону.
35 Игорь_МММ
 
14.03.19
10:46
(33) в DCOM дал права на пользователя Все по такой схеме http://catalog.mista.ru/public/325873/. Но не помогает. Есть еще какие-нибудь идеи?
36 Игорь_МММ
 
14.03.19
10:57
+ млин, сделал симетричные действия только с Excel - отработало корректно
ОбъектВорд = Новый COMОбъект("Excel.Application");
    сообщить("объект excel создан");
37 Игорь_МММ
 
18.03.19
17:55
Поставили Apache вместо IIS  - CОМ объект создался. IIS как ни крутили - побороть не смогли.
Теперь как бы документ вордовский создается, создается на клиенте (через веб-клиент), записывается на диск, но процедура НачатьЗапускПриложения(,ФайлИмя) запускает этот файлик, созданный во временной папке, как я понимаю где-то в расширении браузера 1СFileExtensionChrWin32, соответственно он нигде не отображается. После закрытия сессии (закрытия формы документа недостаточно) этот вордовский файлик можно запустить.
Знает ли кто в чем тут дело?
38 Garykom
 
гуру
18.03.19
18:02
Тут дело в том что новые технологии плохо совместимы со старыми.

Представь что веб-клиента запущена на линуксе или на макоси, что будет?
39 Игорь_МММ
 
18.03.19
18:06
(38) без понятия.
40 dmpl
 
18.03.19
18:19
(37) Чего вы так к этому Word'у прицепились? Автоматизировать надо по-нормальному, тогда не будет необходимости править документ после формирования.
41 Игорь_МММ
 
18.03.19
18:25
(40) уже помышляю перевести работу с договорами на html, но надо курить эту тему еще: как там с заполнением таблиц, что с печатью
42 dmpl
 
18.03.19
18:29
(41) Там несложно оказалось. Поначалу макет можно из Word'а сохранить в html, затем вставить шаблонные поля, а для редактирования - разобрать через DOM и заменить что где надо. Word - это пройденный этап, как убрали его из продакшена - так сразу пропали вопросы с непонятками: то не открылся, то открылся, но свернутый в фоне, то заменил не в том документе...
43 Garykom
 
гуру
18.03.19
18:52
(41) У вас много шаблонов договоров?

Просто я сейчас решение-конфу делаю аля "Конструктор документов" для сложных изменяемых шаблонов, которые динамически формируются.
Нечто вроде
https://www.freshdoc.ru/dogovor/dogovory_arendy/_dogovor_arendy_nejilogo_pomescheniya/
https://helpcenter.doc.one/hc/ru/articles/360002486873-Создание-и-удаление-условий-отображения

Только сам редактор на 1С и для применения из конфигураций 1С в основном.
44 Garykom
 
гуру
18.03.19
18:53
И кстати да столкнулся что с xls(x) есть много чего для работы из 1С, а вот для doc(x) почти нет.
45 Игорь_МММ
 
18.03.19
20:39
(42) (40) Word  в плане возможностей оформления побогаче же будет нежели HTML? у нас было все сделано по вот этому типу:http://hj.net.ua/bounties/1С/MSWordPrint/MSWordPrint.html. Пока за веб не взялись все было замечательно. А с печатью HTML из под тонкого/толстого клиента заморотов нет?
(43) да нет - порядка десятка
46 Сияющий в темноте
 
18.03.19
20:49
Вообще то,нужно учиться генерить pdf,всякие там ворды html и мохел,это все очень сильно нестандартно,а pdf как был,так и остается.
47 Garykom
 
гуру
18.03.19
20:54
(46) Как раз PDF намного проще генерить чем DOC, есть множество готового и бесплатного.
HTML тоже легко делать, но как оно выйдет на печать это большой вопрос.
48 Garykom
 
гуру
18.03.19
21:19
Из бесплатного что умеет с DOC работать есть Apache POI
https://poi.apache.org/

Но требует установки Java на машину.
В принципе можно поставить на сервер и там использовать.
Когда то давно использовал для чтения/записи XLS файлов.
49 Игорь_МММ
 
18.03.19
22:36
и все-таки насчет описанного в (37) никаких нет мнений?
50 Игорь_МММ
 
19.03.19
08:24
почему 1CFileExtensionChrWin32 может "держать" файл? косяк идет именно на этапе записи двоичных данных. При этом запись происходит (раз файл можно открыть после закрытия сеанса)
51 Garykom
 
гуру
19.03.19
11:58
(50) Потому что такая кривая реализация.
Например 1С тоже "держит файл" после сохранения ТабДок в xls
52 Сияющий в темноте
 
19.03.19
12:26
У них,видимо,кривая сборка мусора,как в javascript,пока обьект не умер,он файл держит.
А бы попробовал через тот же обьект открыть друной файл,чтобы ему было чем заняться.
53 Игорь_МММ
 
19.03.19
16:24
в итоге заработало так:
вместо НачатьЗапись() для веб-клиента надо идти по пути НачатьПолучениеФайлов() и все у вас будет хорошо ! ))) Причем актуально это именно для Ворд(может еще для чего - не скажу), другие типы файлов перевариваются
итого (для потомков): чтобы запускать Ворд под веб клиента 1.нужен не IIS a Apache, и 2.см.выше