postrelll Пользователь Сообщений: 7 |
#1 02.09.2016 12:23:58 Добрый день, столкнулся со следующей проблемой в 2016 офисе. Есть макрос, выполняющий роль заполнялки документов по шаблону. Выполняется макрос из excel файлика, среди шаблонов есть Word документы, соответсвенно приходится в самом макросе оперировать с этими word объектами через Word.Application. Макрос корректно работал на версии офиса 2010 и младше. Сейчас установили 2016 офис и возникла проблема — при выполнении одной из строк кода возникает ошибка
Начальная инициализация
Проблемная функция
Проблемная строка на которой светится ошибка 4605
Буду рад любой помощи |
||||||||
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
А на этой строке нет ошибки? Как из Excel обратиться к другому приложению проблема в том, что Excel ничего не знает о константах Word-а, в том числе и про эту: wdReplaceAll Изменено: The_Prist — 02.09.2016 12:29:09 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
postrelll Пользователь Сообщений: 7 |
#3 02.09.2016 12:43:05 The_Prist
То макрос выполняется без ошибок. Шаблон с Word документом сохраняется с нужным мне именем. Однако нужных мне замен в этом шаблоне не производится. ПОдключенные библиотеки <#1><#2> |
||
Hugo Пользователь Сообщений: 23252 |
#4 02.09.2016 12:48:58 Вместо констант пишите явно значение этих констант.
Изменено: Hugo — 02.09.2016 13:00:20 |
||
postrelll Пользователь Сообщений: 7 |
Проблема решена — поменял формат шаблонов на .docx и переместил их с системного диска в документы пользователя. |
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#6 02.09.2016 13:51:39
не хотите Вы прислушиваться и читать…Она обязательно может всплыть в другой раз. Т.к. библиотека Word 16 может не подхватиться на более ранних. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
postrelll Пользователь Сообщений: 7 |
The_Prist Проблема была в «безопасном режиме» шаблона, который открывался. В моем случае макрос открывал шаблон из указанного пути. В шаблоне в цикле делал замены в нужные места документов и затем сохранял шаблон под определенным именем. Ошибка изначально была связана с тем, что при открытии шаблона в безопасном режиме его невозможно редактировать, соответственно и делать замены в нём так же нельзя. А этот безопасный режим появился только в 2016 офисе (возможно и в 2013 он так же есть), поскольку в 2010 все открывалось нормально в обычном режиме. Стоит так же сказать, что шаблоны были в .doc формате для лучшей совместимости с более старыми офисами, поскольку макросом пользуются на самых разных ПК. Из-за этого и выползала ошибка. Плюс я изначально все шаблоны загонял в отдельную папку на диске С. Учитывая, что макрос сейчас запускается из-под WIn 10, проблему так же создавала встроенная защита системы, поскольку она любит подтверждать через UAC все процедуры перезаписи/удаления. Поэтому и перенес папку с шаблонами в документы пользователя. Изменено: postrelll — 02.09.2016 17:05:03 |
Сергей Редькин Пользователь Сообщений: 1 |
#8 19.01.2022 08:58:23 У меня была похожая проблема со вставкой неформатированных значений из ячеек в размеченные закладками места в Word. Ошибки периодически вылазили на этой строке:
Перенос файла шаблона в папку шаблонов по умолчанию не помог. Насколько понимаю проблемы возникают при вызове функций Word из VBA, запущенном в Excel, но до конца в причинах я так и не разобрался. Заменил Copy/Paste на вставку значения текстовой переменной. Самое интересное, что один Selection.Copy / Selection.PasteAndFormat (wdFormatPlainText) в самом конце макроса работает корректно, но как только вставляю в макрос несколько — вылазят ошибки.
Изменено: Сергей Редькин — 19.01.2022 10:39:43 |
||||
- Remove From My Forums
-
Question
-
Using Access from Office 2010, I am unable to open Word if it is not already running. The vba code is: If wrd Is Nothing Then On Error Resume Next Set wrd = GetObject(, "Word.Application") If wrd Is Nothing Then Set wrd = CreateObject("Word.Application") End If Else boolWordExisted = True End If This code works fine on a machine running Office 2003, but fails on a machine running Office 2010 The error message from Access is: "The following error occurred: Automation error A Microsoft Software Installer error was encountered" Could this be an installation problem? Would a re-install of Office be a reasonable thing to do?
Al G.
-
#1
Здравствуйте, господа профи!
У всех прекрасно работает функционал с word.application, кроме одного юзера. У него в обычной функции выбивают ошибки. Интересная вещь, через Debug у него все прекрасно работает. Как отключаю Debug сразу ошибку выдает. В чем может быть проблема?
К примеру на выделенной строке:
Set handle = CreateObject(«word.application»)
Set WrdSelection = handle.Selection
WrdSelection.MoveDown wdLine, cellsCount
Переустановка Word, IBM Notes не помогла. Танец с бубном тоже
-
#2
открываем VB хелп и смотрим все параметры этой функции WrdSelection.MoveDown — пишем их все
и делаем стандартный вызов Call WrdSelection.MoveDown(……..)
-
#3
Не забываем при этом всякие wdLine, wdExtend, wdMove и пр. заменять на правильные константы или переменные.
-
#4
открываем VB хелп и смотрим все параметры этой функции WrdSelection.MoveDown — пишем их все
и делаем стандартный вызов Call WrdSelection.MoveDown(……..)
Не забываем при этом всякие wdLine, wdExtend, wdMove и пр. заменять на правильные константы или переменные.
Да, товарищи! Так и было сделано. Все из вб-хэлпа. Ведь на других всех компьютерах работает.
-
#5
А кроме WrdSelection.MoveDown другие функции Word нормально работают? Может быть что-то с OLE в Windows не так, какие-то ключи в реестре поломаны?
-
#6
Версия пакета еще важна и версия ОС: обе x86, один из x64, обе x64.
Если через COM не работает ни word, ни excel, ни что-то другое из MS пакета, то дело может быть в папках Desktop, их надо создать если их нет:
Especially when running Office 32Bit on x64 systems, the following folders are required as well:
- Windows x64: C:WindowsSysWOW64configsystemprofileDesktop
- Windows x86: C:WindowsSystem32configsystemprofileDesktop
- Please NOTE:
For smooth operation, the folders named above need to be restored after a Windows Update
-
#7
А кроме WrdSelection.MoveDown другие функции Word нормально работают? Может быть что-то с OLE в Windows не так, какие-то ключи в реестре поломаны?
Некоторые другие функции тоже не работают.
Странно, что через Debug все функции прекрасно работают. Как-то может быть так, что через Debug вызывается другой OLE?
-
#8
Некоторые другие функции тоже не работают.
Странно, что через Debug все функции прекрасно работают. Как-то может быть так, что через Debug вызывается другой OLE?
Интересн, а винда какая?)
В десятке последние обновы наколбасили, ващще в любом месте гемор может вылезти.
-
#9
Интересн, а винда какая?)
В десятке последние обновы наколбасили, ващще в любом месте гемор может вылезти.
Windows 10. 64-разрядная
-
#10
OLE зло. Microsoft не сильно подумавши в своё время наколбасили, а теперь никак не могу пользователей отучить от этой штуки. Уж сколько раз они его пытались похоронить, да видать уже не судьба — теперь только вместе с Windows.
-
#11
Вооот!)))) Последняя Обнова, как раз, не работает, порекомендуй откатицца в обратный назад, если есть куда, с переустановкой оффиса (увы((()
-
#12
@alexas1
Какие ужасы Вы рассказываете! Есть ссылка почитать?
-
#13
Товарищи, спасибо за советы! Нашел причину. Я просто поставил Sleep 5 после инициилизации Word-а и теперь все прекрасно работает.
Век живи, век учись!
Благодарю всех!
lmike
нет, пердело совершенство
-
#14
Переустановка Word, IBM Notes не помогла. Танец с бубном тоже
зависит от бубна и стиля танца… надо как минимум вычищать регистри от ОЛЕ перделок, разрегивать компоненту и регать её заново…
lmike
нет, пердело совершенство
-
#15
Товарищи, спасибо за советы! Нашел причину. Я просто поставил Sleep 5 после инициилизации Word-а и теперь все прекрасно работает.
Век живи, век учись!Благодарю всех!
что-то мне напоминает такой способ решения
а могет быть просто цикл с ожиданием компоненты делать (где-то здесь поиск в винде процессов выкладывал)?
lmike
нет, пердело совершенство
-
#16
Версия пакета еще важна и версия ОС: обе x86, один из x64, обе x64.
Если через COM не работает ни word, ни excel, ни что-то другое из MS пакета, то дело может быть в папках Desktop, их надо создать если их нет:
Especially when running Office 32Bit on x64 systems, the following folders are required as well:
- Windows x64: C:WindowsSysWOW64configsystemprofileDesktop
- Windows x86: C:WindowsSystem32configsystemprofileDesktop
- Please NOTE:
For smooth operation, the folders named above need to be restored after a Windows Update
вот подобный ППЦ и приводит к полному нежеланию знать про существование ОЛЕ
-
#17
что-то мне напоминает такой способ решения
а могет быть просто цикл с ожиданием компоненты делать (где-то здесь поиск в винде процессов выкладывал)?
handle.Documents.Open filepath
handle.Activate
Activate не возвращает ничего (
Ссылка скрыта от гостей
)
А Documents.Open возвращает только сам документ. Разве что тут подождать.
(
Ссылка скрыта от гостей
)
-
#18
@alexas1
Какие ужасы Вы рассказываете! Есть ссылка почитать?
На Хабре чота было и на оффе изью читал, боюсь не найду уже((
А у меня лтсц — там такого, канешна, нету)
Ещё, микрики патчи обещали на всё билды, уже есть навер, они быстро работают
Последнее редактирование: 23.06.2020
lmike
нет, пердело совершенство
-
#19
handle.Documents.Open filepath
handle.ActivateActivate не возвращает ничего (
Ссылка скрыта от гостей
)
А Documents.Open возвращает только сам документ. Разве что тут подождать.
(Ссылка скрыта от гостей
)
не там по имени окна (в винде нет «ничего» без окон ) поиск
в закрепленной теме прям Приложения Windows
Последнее редактирование: 23.06.2020
-
#20
вот поэтому предпочитаю делать чистый XML и потом офису лишь давать его открывать — тогда никакое OLE и костыли не нужны
27.07.17 — 16:45
Ребята помогите, 2017 год на дворе, а проблему либо не решили или я туплю.
Windows 2012 x64
1C сервер х64 (у юзера агента-службы есть права)
ЭТО КОД РАБОЧИЙ
&НаСервере
Процедура ОбновитьExcelОтображение()
СомЕх = Новый COMОбъект(«Excel.Application»);
Wrk = СомЕх.WorkBooks.Open(ПутьКФайлуНаСервере);
ВремФ = ПолучитьИмяВременногоФайла(«.html»);
Wrk.SaveAs(ВремФ,44);
СомЕх.Quit();
ПолеHTMLдок = ВремФ; //ПОКАЗЫВАЕТ ПРЕД ПРОСМОТР EXCEL всё хорошо!
КонецПроцедуры
ЭТОТ КОД НЕ ПАШЕТ
&НаСервере
Процедура ОбновитьWordОтображение()
Word = Новый COMОбъект(«Word.Application»);
Word.Documents.Open(ПутьКФайлуНаСервере); //ТУТ ЗАВИСАЕТ ПРОЦЕСС WINWORD.EXE и тишина
и так:
Word.Application.Documents.Add(ПутьКФайлуНаСервере);
КонецПроцедуры
В настройках WORD в безопасности разрешили всё что можно.
ЗЫ
Word и Excel установлены! файлы xls и doc открываются.
Что делать подскажите люди добрые, копаем весь день.
Может проблема в настройке компонент, там для Excel настраивался запуск от текущего пользователя и папка «C:WindowsSysWOW64configsystemprofileDesktop»
Спасибо за ответы.
1 — 27.07.17 — 16:53
Ну попробуй поставить 64 битный Word (MS Office)… может даже поможет.
Но лучше выкинуть MS Office и заюзать другие решения для выполнения исходной задачи.
2 — 27.07.17 — 16:53
(0) Если «ПутьКФайлуНаСервере» прописать (в лоб) — работает?
3 — 27.07.17 — 16:53
(1) Например?
4 — 27.07.17 — 16:55
(3) задачу опиши
5 — 27.07.17 — 16:57
«открыть файлик вордом на сервере» это не задача это «инструмент»
если инструмент не работает, то возьми другой
6 — 27.07.17 — 17:06
(2) ПутьКФайлуНаСервере = Строка: «D:гребанныйфайл.doc» (4) Задача: Предпросмотр word документа в управляемой форме
7 — 27.07.17 — 17:08
(6) Вот так
Процедура ОбновитьWordОтображение()
Word = Новый COMОбъект(«Word.Application»);
Word.Documents.Open( «D:гребанныйфайл.doc»);
открывает?
8 — 27.07.17 — 17:10
9 — 27.07.17 — 17:10
(7) Нет конечно же, также зависает 1С и висит процесс WINWORD.exe, если процесс завершить, то отпускает 1С с неизвестной ошибкой
10 — 27.07.17 — 17:11
11 — 27.07.17 — 17:13
12 — 27.07.17 — 17:22
(9) мNewDoc = Word.Documents;
Word.Visible = 1;
— сам word открывает?
13 — 27.07.17 — 17:27
(8) <a class=»word» href=»//docs.google.com/gview?
url=file://D:/гребанныйфайл.doc&embedded=true»>Open a Word document in Fancybox</a>
/////
400. That’s an error.
The requested URL was not found on this server. That’s all we know.
/////
14 — 27.07.17 — 17:28
(12) Нет не открывает, зависает
15 — 27.07.17 — 17:32
(13) поставь апач и расшарь путь к doc чтобы открывался через «url=http://…»;
16 — 27.07.17 — 17:32
(15) браузер по умолчанию не имеет доступа к файловой системе напрямую, только по http
17 — 27.07.17 — 17:33
(15) IIS8 снести? )) Может есть варианты по WORD?
18 — 27.07.17 — 17:34
(17) ну настрой IIS8 какая нафик разница, чтобы можно было файлики из папки через http получать
19 — 27.07.17 — 17:34
но зачем через ком? почему не просто
ЗапуститьПриложение? как в БСП
20 — 27.07.17 — 17:34
(17) В курсе сколько будет стоит лицензия на WORD чтобы использовать ее на сервер так как вы хотите?
21 — 27.07.17 — 17:37
(20) А не онлайн варианты есть?
22 — 27.07.17 — 17:38
(19) НЕ ВАРИАНТ, мне нужен:
ВремФ = ПолучитьИмяВременногоФайла(«.html»);
Word.SaveAs(ВремФ,8);
и показать предпросмотр HTML на управляемых формах.
23 — 27.07.17 — 17:40
24 — 27.07.17 — 17:40
(18) Идея отличная, обязательно возьму на заметку, спасибо. Но что же с долбаным word?
25 — 27.07.17 — 17:41
«Задача: Предпросмотр word документа в управляемой форме» // Это не задача, это какая-то куита
26 — 27.07.17 — 17:42
Конечную цель давай
27 — 27.07.17 — 17:42
(25) почему же?
28 — 27.07.17 — 17:42
(27) Не дает понимания цели
29 — 27.07.17 — 17:43
(25)(26) (28) Это не каммент, это какает о куита, я написал цель, что еще надо написать? Хватит флудить
30 — 27.07.17 — 17:43
(29) Где ты цель написал?
31 — 27.07.17 — 17:44
(29) показать содержимое файла, без установленного ворда
32 — 27.07.17 — 17:45
(31) Не проще все документы при сохранении в некий каталог автоматом в .html переводить с тем же именем?
33 — 27.07.17 — 17:47
(32)+ Кста на .Net есть прекрасные средства для работы с файловой системой и ее событиями, даже изменения файликов можно отслеживать и пересоздавать «веб превью».
34 — 27.07.17 — 17:49
(32)(33) Тоже вариант интересный, но тема поста, про то, что word вешается.
35 — 27.07.17 — 17:50
(0) В журнале событий винды должно все быть написано.
36 — 27.07.17 — 17:53
(34) Нужно одновременно прорабатывать план Б
37 — 27.07.17 — 17:53
кстати у ворда же нужно отключать всякие диалоги
38 — 27.07.17 — 17:53
(34) Да мы поняли что если привыкли микроскопом гвозди забивать то уже никак…
-Ой у меня микроскоп не работает
-Так он же электронный, а не советский чугунный
39 — 27.07.17 — 17:55
(38) Да причем тут это, зависает WORD, мне млять что теперь все бросить и перевести контору на LINUX, хватит уже, противно слушать, умные все такие.
40 — 27.07.17 — 17:57
(39) ИМХО, не в word’е проблема.
И нервничать не надо… Все такие нервные…
41 — 27.07.17 — 18:00
Автор прикован к какой-то задаче и не может подняться над ней и подумать о цели
42 — 27.07.17 — 18:00
(39) У тебя ответ прямо в вопросе, там где про excel
43 — 27.07.17 — 18:01
(41) У него предвзятое отношение к word’у :)))))))))
44 — 27.07.17 — 18:02
(41) Тему почитай, если непонятно, то вряд ли чем то поможешь.
45 — 27.07.17 — 18:04
(42) если про Компоненты x32 и x64, то проблема возникает на этом этапе: Word = Новый COMОбъект(«Word.Application»).
Но COM же срабатывает и WINWORD.EXE заводиться, значит не в компонентах дело.
46 — 27.07.17 — 18:05
(0)Может вылазит предупреждение и прячется на задний план, в процессах ничего еще вордовского нет?
47 — 27.07.17 — 18:06
48 — 27.07.17 — 18:08
(47) Красавчик, иди в школу работать учителем.
49 — 27.07.17 — 18:11
(45) Зайди на сервер от юзера от которого выполняется процесс «сервера 1С» и попробуй открыть Word.
Очень удивишься…
50 — 27.07.17 — 18:11
(48) у метода Open больше одного параметра, программистушко
51 — 27.07.17 — 18:14
(50) Не в этом проблема, хотя может помочь если на запись нет прав открыть.
52 — 27.07.17 — 18:15
(49) но ексель то работает
53 — 27.07.17 — 18:15
(52) «Может проблема в настройке компонент, там для Excel настраивался запуск от текущего пользователя и папка «C:WindowsSysWOW64configsystemprofileDesktop» «
54 — 27.07.17 — 18:19
(48) Я уже выполнил эту роль благодаря тебе, ведь ты уже открыл ссылку
55 — 27.07.17 — 18:53
(49) Все работает. Сервер 1с работает от того же юзера, от которого я пробую.
56 — 27.07.17 — 18:58
(55) Всмысле «Все работает» это открываются Excel и Word файлы.
57 — 27.07.17 — 19:59
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
https://support.microsoft.com/ru-ru/help/257757/considerations-for-server-side-automation-of-office
58 — 27.07.17 — 20:06
(56) попробуй свой код засунуть в обработку с обычной формой и открыть в том сеансе с видимым вордом.
59 — 27.07.17 — 20:16
(58) Спасибо за совет, но не буду тратить время. Сегодня перерыл страниц 200 с подобными темами, я так и не увидел рабочих решений с предпросмотром word документов через управляемые формы. Excel завёлся, как и во многих темах, что мне попадались Что качается word, не видел рабочего решения, только если на стороне клиента колдовать, этот вариант не устраивает.
60 — 27.07.17 — 20:24
(58) Проверил на обычных формах, тоже самое.
61 — 27.07.17 — 20:31
http://1c.ruboard.ru/public/568913/
v8: Ошибка получения объекта COM при переходе на клиент-серверный вариант работы
Т.е. для сервера 64 (система и 1С) и офиса 32 трабла решается (возможно) через создание папочек и регистрацию СОМ+
62 — 27.07.17 — 20:34
(61)+ Но с учетом что сервер 1С нынче модно на линуксах и с потсгресом юзать или даже в облаках… советую выкинуть офис и сделать нормальное решение.
63 — 27.07.17 — 20:35
Может есть знатоки?
cmd: «mmc comexp.msc /32» и «mmc comexp.msc /64»
Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM:
«Microsoft Excel Application» имеется, а «Microsoft Word Application» нету, может он по другому называется или его нужно добавить?
64 — 27.07.17 — 20:36
(62) Я за хорошее решение! Но сейчас тупо проблема стоит именно в WORD и COM
65 — 27.07.17 — 20:38
(61) я сегодня на эту статью натыкался раза 4, там есть кусок кода:
// этот код точно вызовет экземпляр COM нужной разрядности, в нашем случае x64
Word = Новый COMОбъект(«Word.Application»);
Word.Displayalerts = 0;
ДокументН = Word.Application.Documents.Add();
ДокументН.SaveAs(ВремФайл,0);
Word.Quit();
который у меня не работает ))
66 — 27.07.17 — 20:41
(65) Так у тебя не такой код приведен, поэтому и не работает. В ветке тебе уже намекнули на важную строку.
67 — 27.07.17 — 20:41
(59) > так и не увидел рабочих решений
А ты не пробовал не искать куски кода, а пытаться понять почему оно не работает?
68 — 27.07.17 — 20:42
(66) Word.Displayalerts = 0;
69 — 27.07.17 — 20:46
Все же самое правильное то поднять в сети (если нет желания пользоваться кучей онлайн конвертеров doc(x)2html) свой конвертер из офиса в html и заюзать его из 1С.
Лучше всего в момент когда файлы офиса засовываются/прикрепляются к 1С, банально отправляем файлик в сервис и конвертированный в html ответ прицепляем куда нуна.
70 — 27.07.17 — 20:49
(68)
Word = Новый COMОбъект(«Word.Application»);
Word.Displayalerts = 0;
Word.Documents.Open(«D:гребанныйфайл.doc»);
тоже самое, зависает процесс WINWORD.EXE, не грузит процессор, просто висит. В ручную файл открывается. если процесс был грохнут, при ручном открытии пишет, что пред открытие было сбойным.
(69) Сервер закрыт для онлайн «гуляний».
71 — 27.07.17 — 20:49
(60) а окно Word открылось? Что там?
72 — 27.07.17 — 20:52
(71) Н и ч е г о не открылось, тупо зависает процесс winword, грешу на разрядность и настройки компонент DCOM. DCOM уходят в прошлое, да знаю.
73 — 27.07.17 — 20:53
(72) хотя если бы это было так, то COM объект не создался бы, а он создается и его можно пощупать в отладчике, после:Новый COMОбъект(«Word.Application»)
74 — 27.07.17 — 20:57
(69) Имеется ввиду поднять сервис в сети с рабочим word и через него (через webсервис) конвертировать файлы в html, тоже вариант, но игра не стоит свеч, я думал всё проще с word, т.к. с Excel всё взлетело.
75 — 27.07.17 — 20:58
Пропиши вижимость Ворда сразу после создания СОМ-объекта
76 — 27.07.17 — 21:01
(75)
MSWord = Новый COMОбъект(«Word.Application»);
работает: MSWord =СОМОбъект…
MSWord.Visible = Истина;
Процесс зависает…
дальше даже кода нет
77 — 27.07.17 — 21:09
(76) Ты старые экземпляры в диспетчере убил?
Журнал ошибок в Windows смотрел? Что пишет?
78 — 27.07.17 — 21:10
Может у конфы не разрешена модальность. В попытку завернуть, проверить исключение.
Ну и попробовать через Documents.add
и активацию конкретного документа
79 — 27.07.17 — 21:16
Про драйвер принтера уже говорили?
80 — 27.07.17 — 21:17
(65) {Форма.Форма.Форма(132)}: Ошибка при вызове метода контекста (Add)
ДокументН = Word.Application.Documents.Add();
по причине:
Произошла исключительная ситуация (Microsoft Word): Не удается запустить событие.
81 — 27.07.17 — 21:18
(77) Естественно убил
82 — 27.07.17 — 21:20
(77) Ошибки в журнале только после насильногозавершения процесса, ничего там нет.
83 — 27.07.17 — 21:23
(79) Нет
84 — 27.07.17 — 21:29
(70) >Сервер закрыт для онлайн «гуляний».
ну так на этом же сервере и поднять свою веб-сервису
85 — 27.07.17 — 21:34
(84) Я так понимаю, сервис не будет (на этом же сервере) юзать Новый COMОбъект(«Word.Application»), есть какой то волшебный метод msword *.doc файл конвертировать в html без онлайн конверторов?
86 — 27.07.17 — 21:35
(74) Не обязательно с MS Word, можно что угодно вплоть до LibreOffice или любого рабочего решения.
Типа https://github.com/mirkonasato/pyodconverter
87 — 27.07.17 — 21:35
(85) угу
88 — 27.07.17 — 21:38
89 — 27.07.17 — 21:45
(86) т.е. поднять сервис, который будет чисто конвертацией заниматься через внешний онлайн сервис?
90 — 27.07.17 — 21:46
(89) оно локальное
короче, прочитай (88) и используй ЗапуститьПриложение или КомандаСистемы
91 — 27.07.17 — 21:49
(90) Спасибо тебе добрый человек, ты меня направил в нужном направлении.
92 — 27.07.17 — 21:49
(90) а насчет ЗапуститьПриложение или КомандаСистемы отдельное спасибо
93 — 27.07.17 — 23:33
(92) Прошло 4 часа после (19). Эхэх…
94 — 01.08.17 — 16:08
(93) прошло 4 дня, эх. Мне этот вариант сразу же не нужен был. (92) САРКАЗМ!!!
lodger
95 — 01.08.17 — 16:36
так кто дурак то в итоге?
Ребята помогите, 2017 год на дворе, а проблему либо не решили или я туплю. Windows 2012 x64 1C сервер х64 (у юзера агента-службы есть права) ЭТО КОД РАБОЧИЙ &НаСервере ЭТОТ КОД НЕ ПАШЕТ &НаСервере В настройках WORD в безопасности разрешили всё что можно. ЗЫ Word и Excel установлены! файлы xls и doc открываются. Что делать подскажите люди добрые, копаем весь день. Может проблема в настройке компонент, там для Excel настраивался запуск от текущего пользователя и папка «C:WindowsSysWOW64configsystemprofileDesktop» Спасибо за ответы.
Ну попробуй поставить 64 битный Word (MS Office)… может даже поможет. Но лучше выкинуть MS Office и заюзать другие решения для выполнения исходной задачи.
Если «ПутьКФайлуНаСервере» прописать (в лоб) — работает?
«открыть файлик вордом на сервере» это не задача это «инструмент» если инструмент не работает, то возьми другой
ПутьКФайлуНаСервере = Строка: «D:гребанныйфайл.doc» Задача: Предпросмотр word документа в управляемой форме
Нет конечно же, также зависает 1С и висит процесс WINWORD.exe, если процесс завершить, то отпускает 1С с неизвестной ошибкой
<a class=»word» href=»//docs.google.com/gview? ///// 400. That’s an error. The requested URL was not found on this server. That’s all we know.
Нет не открывает, зависает
поставь апач и расшарь путь к doc чтобы открывался через «url=;
браузер по умолчанию не имеет доступа к файловой системе напрямую, только по http
IIS8 снести? )) Может есть варианты по WORD?
ну настрой IIS8 какая нафик разница, чтобы можно было файлики из папки через http получать
но зачем через ком? почему не просто ЗапуститьПриложение? как в БСП
В курсе сколько будет стоит лицензия на WORD чтобы использовать ее на сервер так как вы хотите?
А не онлайн варианты есть?
НЕ ВАРИАНТ, мне нужен: Word.SaveAs(ВремФ,8); и показать предпросмотр HTML на управляемых формах.
Идея отличная, обязательно возьму на заметку, спасибо. Но что же с долбаным word?
«Задача: Предпросмотр word документа в управляемой форме» // Это не задача, это какая-то куита
Это не каммент, это какает о куита, я написал цель, что еще надо написать? Хватит флудить
показать содержимое файла, без установленного ворда
Не проще все документы при сохранении в некий каталог автоматом в .html переводить с тем же именем?
+ Кста на .Net есть прекрасные средства для работы с файловой системой и ее событиями, даже изменения файликов можно отслеживать и пересоздавать «веб превью».
Тоже вариант интересный, но тема поста, про то, что word вешается.
В журнале событий винды должно все быть написано.
Нужно одновременно прорабатывать план Б
кстати у ворда же нужно отключать всякие диалоги
Да мы поняли что если привыкли микроскопом гвозди забивать то уже никак… -Ой у меня микроскоп не работает -Так он же электронный, а не советский чугунный
Да причем тут это, зависает WORD, мне млять что теперь все бросить и перевести контору на LINUX, хватит уже, противно слушать, умные все такие.
ИМХО, не в word’е проблема. И нервничать не надо… Все такие нервные…
Автор прикован к какой-то задаче и не может подняться над ней и подумать о цели
У тебя ответ прямо в вопросе, там где про excel
У него предвзятое отношение к word’у :)))))))))
Тему почитай, если непонятно, то вряд ли чем то поможешь.
если про Компоненты x32 и x64, то проблема возникает на этом этапе: Word = Новый COMОбъект(«Word.Application»). Но COM же срабатывает и WINWORD.EXE заводиться, значит не в компонентах дело.
Может вылазит предупреждение и прячется на задний план, в процессах ничего еще вордовского нет?
Красавчик, иди в школу работать учителем.
Зайди на сервер от юзера от которого выполняется процесс «сервера 1С» и попробуй открыть Word. Очень удивишься…
#50
by Имитирующий работу
у метода Open больше одного параметра, программистушко
Не в этом проблема, хотя может помочь если на запись нет прав открыть.
«Может проблема в настройке компонент, там для Excel настраивался запуск от текущего пользователя и папка «C:WindowsSysWOW64configsystemprofileDesktop» »
Я уже выполнил эту роль благодаря тебе, ведь ты уже открыл ссылку
Все работает. Сервер 1с работает от того же юзера, от которого я пробую.
Всмысле «Все работает» это открываются Excel и Word файлы.
Корпорация Microsoft на сегодняшний день не рекомендует производить и не поддерживает автоматизацию программ из пакета Microsoft Office с помощью автоматических, неинтерактивных клиентских приложений или компонентов (включая ASP, DCOM и службы NT), поскольку при запуске в этом окружении программы пакета Office могут работать нестабильно или зависать.
попробуй свой код засунуть в обработку с обычной формой и открыть в том сеансе с видимым вордом.
Спасибо за совет, но не буду тратить время. Сегодня перерыл страниц 200 с подобными темами, я так и не увидел рабочих решений с предпросмотром word документов через управляемые формы. Excel завёлся, как и во многих темах, что мне попадались Что качается word, не видел рабочего решения, только если на стороне клиента колдовать, этот вариант не устраивает.
Проверил на обычных формах, тоже самое.
Т.е. для сервера 64 (система и 1С) и офиса 32 трабла решается (возможно) через создание папочек и регистрацию СОМ+
+ Но с учетом что сервер 1С нынче модно на линуксах и с потсгресом юзать или даже в облаках… советую выкинуть офис и сделать нормальное решение.
Может есть знатоки? cmd: «mmc comexp.msc /32» и «mmc comexp.msc /64» Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM: «Microsoft Excel Application» имеется, а «Microsoft Word Application» нету, может он по другому называется или его нужно добавить?
Я за хорошее решение! Но сейчас тупо проблема стоит именно в WORD и COM
я сегодня на эту статью натыкался раза 4, там есть кусок кода: который у меня не работает ))
Так у тебя не такой код приведен, поэтому и не работает. В ветке тебе уже намекнули на важную строку.
#67
by Имитирующий работу
> так и не увидел рабочих решений А ты не пробовал не искать куски кода, а пытаться понять почему оно не работает?
Все же самое правильное то поднять в сети (если нет желания пользоваться кучей онлайн конвертеров doc(x)2html) свой конвертер из офиса в html и заюзать его из 1С. Лучше всего в момент когда файлы офиса засовываются/прикрепляются к 1С, банально отправляем файлик в сервис и конвертированный в html ответ прицепляем куда нуна.
тоже самое, зависает процесс WINWORD.EXE, не грузит процессор, просто висит. В ручную файл открывается. если процесс был грохнут, при ручном открытии пишет, что пред открытие было сбойным. Сервер закрыт для онлайн «гуляний».
а окно Word открылось? Что там?
Н и ч е г о не открылось, тупо зависает процесс winword, грешу на разрядность и настройки компонент DCOM. DCOM уходят в прошлое, да знаю.
хотя если бы это было так, то COM объект не создался бы, а он создается и его можно пощупать в отладчике, после:Новый COMОбъект(«Word.Application»)
Имеется ввиду поднять сервис в сети с рабочим word и через него (через webсервис) конвертировать файлы в html, тоже вариант, но игра не стоит свеч, я думал всё проще с word, т.к. с Excel всё взлетело.
Пропиши вижимость Ворда сразу после создания СОМ-объекта
MSWord = Новый COMОбъект(«Word.Application»); Процесс зависает… дальше даже кода нет
Ты старые экземпляры в диспетчере убил? Журнал ошибок в Windows смотрел? Что пишет?
Может у конфы не разрешена модальность. В попытку завернуть, проверить исключение. Ну и попробовать через Documents.add и активацию конкретного документа
Про драйвер принтера уже говорили?
{Форма.Форма.Форма}: Ошибка при вызове метода контекста (Add) ДокументН = Word.Application.Documents.Add; по причине: Произошла исключительная ситуация (Microsoft Word): Не удается запустить событие.
Ошибки в журнале только после насильногозавершения процесса, ничего там нет.
>Сервер закрыт для онлайн «гуляний». ну так на этом же сервере и поднять свою веб-сервису
Я так понимаю, сервис не будет (на этом же сервере) юзать Новый COMОбъект(«Word.Application»), есть какой то волшебный метод msword *.doc файл конвертировать в html без онлайн конверторов?
Не обязательно с MS Word, можно что угодно вплоть до LibreOffice или любого рабочего решения. Типа
т.е. поднять сервис, который будет чисто конвертацией заниматься через внешний онлайн сервис?
оно локальное короче, прочитай и используй ЗапуститьПриложение или КомандаСистемы
Спасибо тебе добрый человек, ты меня направил в нужном направлении.
а насчет ЗапуститьПриложение или КомандаСистемы отдельное спасибо
#93
by Имитирующий работу
Прошло 4 часа после . Эхэх…
прошло 4 дня, эх. Мне этот вариант сразу же не нужен был. САРКАЗМ!!!
так кто дурак то в итоге?
Тэги:
Комментарии доступны только авторизированным пользователям