Word application не работает

 

postrelll

Пользователь

Сообщений: 7
Регистрация: 28.03.2016

#1

02.09.2016 12:23:58

Добрый день, столкнулся со следующей проблемой в 2016 офисе.

Есть макрос, выполняющий роль заполнялки документов по шаблону. Выполняется макрос из excel файлика, среди шаблонов есть Word документы, соответсвенно приходится в самом макросе оперировать с этими word объектами через Word.Application. Макрос корректно работал на версии офиса 2010 и младше. Сейчас установили 2016 офис и возникла проблема — при выполнении одной из строк кода возникает ошибка

Код
Run-Time Error 4605
Данная команда недоступна

Начальная инициализация

Код
Dim WordApp As Object

Set WordApp = CreateObject("Word.Application")
With WordApp
        .Visible = False
        .WindowState = wdWindowStateNormal
        .ScreenUpdating = False
End With

Проблемная функция

Код
Private Sub WordReplacement(word_selection As String, _
                            replacement_text As String, _
                            appobject As Object)
                             
    appobject .Application.Selection.Find.ClearFormatting
    appobject .Application.Selection.Find.Replacement.ClearFormatting

    With appobject.Application.Selection.Find
        .Text = word_selection
        .Replacement.Text = replacement_text
        appobject .Application.Selection.Find.Execute Replace:=wdReplaceAll
    End With

Проблемная строка на которой светится ошибка 4605

Код
 appobject .Application.Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Буду рад любой помощи

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

А на этой строке нет ошибки?
.WindowState = wdWindowStateNormal
точно? Зачем Вам позднее связывание, если внутри кода напихали констант ворда?
Советую ознакомиться:

Как из Excel обратиться к другому приложению

проблема в том, что Excel ничего не знает о константах Word-а, в том числе и про эту: wdReplaceAll

Изменено: The_Prist02.09.2016 12:29:09

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

postrelll

Пользователь

Сообщений: 7
Регистрация: 28.03.2016

#3

02.09.2016 12:43:05

The_Prist
Да, все верно, именно поэтому приходится в начале инициализировать экземпляр объекта Word.Application
.WindowState = wdWindowStateNormal — на эту строку не ругается
Инициализация объекта Word.Application идет в самом начале макроса. Если я убираю вот эту строку из кода

Код
appobject .Application.Selection.Find.Execute Replace:=wdReplaceAll

То макрос выполняется без ошибок. Шаблон с Word документом сохраняется с нужным мне именем. Однако нужных мне замен в этом шаблоне не производится.

ПОдключенные библиотеки

<#1><#2>

 

Hugo

Пользователь

Сообщений: 23252
Регистрация: 22.12.2012

#4

02.09.2016 12:48:58

Вместо констант пишите явно значение этих констант.

Код
Const wdReplaceAll = 2
    Member of Word.WdReplace

Изменено: Hugo02.09.2016 13:00:20

 

postrelll

Пользователь

Сообщений: 7
Регистрация: 28.03.2016

Проблема решена  — поменял формат шаблонов на .docx и переместил их с системного диска в документы пользователя.

 

The_Prist

Пользователь

Сообщений: 14182
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#6

02.09.2016 13:51:39

Цитата
postrelll написал: Проблема решена

не хотите Вы прислушиваться и читать…Она обязательно может всплыть в другой раз. Т.к. библиотека Word 16 может не подхватиться на более ранних.
Сказать, почему макрос выполняется без ошибок? потому что все остальные переменные Word-а, возможно, тупо как 0 воспринимаются, т.к. директива Option Explicit не объявлена. И это тоже может повлечь свои ошибки.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

postrelll

Пользователь

Сообщений: 7
Регистрация: 28.03.2016

The_Prist
Да, я понимаю значение директивы Option Explicit.
Макрос выполняется корректно и результат так же корректен.

Проблема была в «безопасном режиме» шаблона, который открывался. В моем случае макрос открывал шаблон из указанного пути. В шаблоне в цикле делал замены в нужные места документов и затем сохранял шаблон под определенным именем. Ошибка изначально была связана с тем, что при открытии шаблона в безопасном режиме его невозможно редактировать, соответственно и делать замены в нём так же нельзя. А этот безопасный режим появился только в 2016 офисе (возможно и в 2013 он так же есть), поскольку в 2010 все открывалось нормально в обычном режиме. Стоит так же сказать, что шаблоны были в .doc формате для лучшей совместимости с более старыми офисами, поскольку макросом пользуются на самых разных ПК. Из-за этого и выползала ошибка.

Плюс я изначально все шаблоны загонял в отдельную папку на диске С.  Учитывая, что макрос сейчас запускается из-под WIn 10, проблему так же создавала встроенная защита системы, поскольку она любит подтверждать через UAC все процедуры перезаписи/удаления. Поэтому и перенес папку с шаблонами в документы пользователя.

Изменено: postrelll02.09.2016 17:05:03

 

Сергей Редькин

Пользователь

Сообщений: 1
Регистрация: 11.07.2021

#8

19.01.2022 08:58:23

У меня была похожая проблема со вставкой неформатированных значений из ячеек в размеченные закладками места в Word. Ошибки периодически вылазили на этой строке:

Код
.Application.Selection.PasteAndFormat (wdFormatPlainText)

Перенос файла шаблона в папку шаблонов по умолчанию не помог. Насколько понимаю проблемы возникают при вызове функций Word из VBA, запущенном в Excel, но до конца в причинах я так и не разобрался. Заменил Copy/Paste на вставку значения текстовой переменной. Самое интересное, что один Selection.Copy / Selection.PasteAndFormat (wdFormatPlainText) в самом конце макроса работает корректно, но как только вставляю в макрос несколько — вылазят ошибки.

Код
Sub CreateLetter()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim SaveAsName As String

Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True

Set wdDoc = wdApp.Documents.Add(Template:="C:____.dotx", NewTemplate:=False, DocumentType:=0)

With wdDoc
       
    Text = Cells(6, 2).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Должность"
    .Application.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Application.Selection.InsertAfter (Text)
       
    Text = Cells(6, 1).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Организация"
    .Application.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Application.Selection.InsertAfter (Text)

    Text = Cells(6, 3).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Кому"
    .Application.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Application.Selection.InsertAfter (Text)
    
    Text = Cells(6, 4).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Обращение"
    .Application.Selection.InsertAfter (Text)
           
    Text = Cells(2, 11).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Должность_подписант"
    .Application.Selection.InsertAfter (Text)
    
    Text = Cells(2, 10).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Подписант"
    .Application.Selection.InsertAfter (Text)
    
    Text = Cells(1, 10).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Исполнитель"
    .Application.Selection.InsertAfter (Text)
    
    Text = Cells(1, 11).Text
    .Application.Selection.Goto wdGoToBookmark, , , "Телефон"
    .Application.Selection.InsertAfter (Text)
    
    ActiveSheet.PivotTables("Заезжающие").PivotSelect _
        "'[#Inbox люди].[Фамилия Имя Отчество].[Фамилия Имя Отчество]'[All]", _
        xlLabelOnly + xlFirstRow, True
    Selection.Copy
    .Application.Selection.Goto wdGoToBookmark, , , "Список"
    .Application.Selection.PasteAndFormat (wdFormatPlainText)
    
    .SaveAs2 Filename:=("D:_______ & Format(Now, "yyyy-mm-dd hh-mm-ss") & ".docx"), _
    FileFormat:=wdFormatXMLDocument, AddtoRecentFiles:=False
    
    .Close
End With

wdApp.Quit

End Sub

Изменено: Сергей Редькин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 не помогла. Танец с бубном тоже :)

ToxaRat


  • #2

открываем VB хелп и смотрим все параметры этой функции WrdSelection.MoveDown — пишем их все
и делаем стандартный вызов Call WrdSelection.MoveDown(……..)

garrick


  • #3

Не забываем при этом всякие wdLine, wdExtend, wdMove и пр. заменять на правильные константы или переменные.

  • #4

открываем VB хелп и смотрим все параметры этой функции WrdSelection.MoveDown — пишем их все
и делаем стандартный вызов Call WrdSelection.MoveDown(……..)

Не забываем при этом всякие wdLine, wdExtend, wdMove и пр. заменять на правильные константы или переменные.

Да, товарищи! Так и было сделано. Все из вб-хэлпа. Ведь на других всех компьютерах работает.

garrick


  • #5

А кроме WrdSelection.MoveDown другие функции Word нормально работают? Может быть что-то с OLE в Windows не так, какие-то ключи в реестре поломаны?

savl


  • #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-разрядная

garrick


  • #10

OLE зло. Microsoft не сильно подумавши в своё время наколбасили, а теперь никак не могу пользователей отучить от этой штуки. Уж сколько раз они его пытались похоронить, да видать уже не судьба — теперь только вместе с Windows.

  • #11

Вооот!)))) Последняя Обнова, как раз, не работает, порекомендуй откатицца в обратный назад, если есть куда, с переустановкой оффиса (увы((()

oshmianski


  • #12

@alexas1

Какие ужасы Вы рассказываете! Есть ссылка почитать?

  • #13

Товарищи, спасибо за советы! Нашел причину. Я просто поставил Sleep 5 после инициилизации Word-а и теперь все прекрасно работает.
Век живи, век учись!

Благодарю всех!

lmike

lmike

нет, пердело совершенство


  • #14

Переустановка Word, IBM Notes не помогла. Танец с бубном тоже

зависит от бубна и стиля танца… ;) надо как минимум вычищать регистри от ОЛЕ перделок, разрегивать компоненту и регать её заново…

lmike

lmike

нет, пердело совершенство


  • #15

Товарищи, спасибо за советы! Нашел причину. Я просто поставил Sleep 5 после инициилизации Word-а и теперь все прекрасно работает.
Век живи, век учись!

Благодарю всех!

что-то мне напоминает такой способ решения ;)
а могет быть просто цикл с ожиданием компоненты делать (где-то здесь поиск в винде процессов выкладывал)?

lmike

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

lmike

нет, пердело совершенство


  • #19

handle.Documents.Open filepath
handle.Activate

Activate не возвращает ничего (

Ссылка скрыта от гостей

)

А Documents.Open возвращает только сам документ. Разве что тут подождать.
(

Ссылка скрыта от гостей

)

не там по имени окна (в винде нет «ничего» без окон ;) ) поиск
в закрепленной теме прям Приложения Windows

Последнее редактирование: 23.06.2020

ToxaRat


  • #20

вот поэтому предпочитаю делать чистый XML и потом офису лишь давать его открывать — тогда никакое OLE и костыли не нужны ;)

   Pilokarpios

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»

Спасибо за ответы.

   Garykom

1 — 27.07.17 — 16:53

Ну попробуй поставить 64 битный Word (MS Office)… может даже поможет.

Но лучше выкинуть MS Office и заюзать другие решения для выполнения исходной задачи.

   Масянька

2 — 27.07.17 — 16:53

(0) Если «ПутьКФайлуНаСервере» прописать (в лоб) — работает?

   Pilokarpios

3 — 27.07.17 — 16:53

(1) Например?

   Garykom

4 — 27.07.17 — 16:55

(3) задачу опиши

   Garykom

5 — 27.07.17 — 16:57

«открыть файлик вордом на сервере» это не задача это «инструмент»

если инструмент не работает, то возьми другой

   Pilokarpios

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»);

открывает?

   Garykom

8 — 27.07.17 — 17:10

   Pilokarpios

9 — 27.07.17 — 17:10

(7) Нет конечно же, также зависает 1С и висит процесс WINWORD.exe, если процесс завершить, то отпускает 1С с неизвестной ошибкой

   Garykom

10 — 27.07.17 — 17:11

   Garykom

11 — 27.07.17 — 17:13

   Масянька

12 — 27.07.17 — 17:22

(9) мNewDoc = Word.Documents;

    Word.Visible = 1;

— сам word открывает?

   Pilokarpios

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.

/////

   Pilokarpios

14 — 27.07.17 — 17:28

(12) Нет не открывает, зависает

   Garykom

15 — 27.07.17 — 17:32

(13) поставь апач и расшарь путь к doc чтобы открывался через «url=http://…»;

   Garykom

16 — 27.07.17 — 17:32

(15) браузер по умолчанию не имеет доступа к файловой системе напрямую, только по http

   Pilokarpios

17 — 27.07.17 — 17:33

(15) IIS8 снести? )) Может есть варианты по WORD?

   Garykom

18 — 27.07.17 — 17:34

(17) ну настрой IIS8 какая нафик разница, чтобы можно было файлики  из папки через http получать

   Вафель

19 — 27.07.17 — 17:34

но зачем через ком? почему не просто

ЗапуститьПриложение? как в БСП

   Garykom

20 — 27.07.17 — 17:34

(17) В курсе сколько будет стоит лицензия на WORD чтобы использовать ее на сервер так как вы хотите?

   Pilokarpios

21 — 27.07.17 — 17:37

(20) А не онлайн варианты есть?

   Pilokarpios

22 — 27.07.17 — 17:38

(19) НЕ ВАРИАНТ, мне нужен:

ВремФ = ПолучитьИмяВременногоФайла(«.html»);

Word.SaveAs(ВремФ,8);

и показать предпросмотр HTML на управляемых формах.

   Вафель

23 — 27.07.17 — 17:40

   Pilokarpios

24 — 27.07.17 — 17:40

(18) Идея отличная, обязательно возьму на заметку, спасибо. Но что же с долбаным word?

   Cyberhawk

25 — 27.07.17 — 17:41

«Задача: Предпросмотр word документа в управляемой форме» // Это не задача, это какая-то куита

   Cyberhawk

26 — 27.07.17 — 17:42

Конечную цель давай

   Вафель

27 — 27.07.17 — 17:42

(25) почему же?

   Cyberhawk

28 — 27.07.17 — 17:42

(27) Не дает понимания цели

   Pilokarpios

29 — 27.07.17 — 17:43

(25)(26) (28) Это не каммент, это какает о куита, я написал цель, что еще надо написать? Хватит флудить

   Cyberhawk

30 — 27.07.17 — 17:43

(29) Где ты цель написал?

   Вафель

31 — 27.07.17 — 17:44

(29) показать содержимое файла, без установленного ворда

   Garykom

32 — 27.07.17 — 17:45

(31) Не проще все документы при сохранении в некий каталог автоматом в .html переводить с тем же именем?

   Garykom

33 — 27.07.17 — 17:47

(32)+ Кста на .Net есть прекрасные средства для работы с файловой системой и ее событиями, даже изменения файликов можно отслеживать и пересоздавать «веб превью».

   Pilokarpios

34 — 27.07.17 — 17:49

(32)(33) Тоже вариант интересный, но тема поста, про то, что word вешается.

   timurhv

35 — 27.07.17 — 17:50

(0) В журнале событий винды должно все быть написано.

   Вафель

36 — 27.07.17 — 17:53

(34) Нужно одновременно прорабатывать план Б

   Вафель

37 — 27.07.17 — 17:53

кстати у ворда же нужно отключать всякие диалоги

   Garykom

38 — 27.07.17 — 17:53

(34) Да мы поняли что если привыкли микроскопом гвозди забивать то уже никак…

-Ой у меня микроскоп не работает

-Так он же электронный, а не советский чугунный

   Pilokarpios

39 — 27.07.17 — 17:55

(38) Да причем тут это, зависает WORD, мне млять что теперь все бросить и перевести контору на LINUX, хватит уже, противно слушать, умные все такие.

   Масянька

40 — 27.07.17 — 17:57

(39) ИМХО, не в word’е проблема.

И нервничать не надо… Все такие нервные…

   Cyberhawk

41 — 27.07.17 — 18:00

Автор прикован к какой-то задаче и не может подняться над ней и подумать о цели

   Garykom

42 — 27.07.17 — 18:00

(39) У тебя ответ прямо в вопросе, там где про excel

   Масянька

43 — 27.07.17 — 18:01

(41) У него предвзятое отношение к word’у :)))))))))

   Pilokarpios

44 — 27.07.17 — 18:02

(41) Тему почитай, если непонятно, то вряд ли чем то поможешь.

   Pilokarpios

45 — 27.07.17 — 18:04

(42) если про Компоненты x32 и x64, то проблема возникает на этом этапе: Word = Новый COMОбъект(«Word.Application»).

Но COM же срабатывает и WINWORD.EXE заводиться, значит не в компонентах дело.

   DomovoiAtakue

46 — 27.07.17 — 18:05

(0)Может вылазит предупреждение и прячется на задний план, в процессах ничего еще вордовского нет?

   Cyberhawk

47 — 27.07.17 — 18:06

   Pilokarpios

48 — 27.07.17 — 18:08

(47) Красавчик, иди в школу работать учителем.

   Garykom

49 — 27.07.17 — 18:11

(45) Зайди на сервер от юзера от которого выполняется процесс «сервера 1С» и попробуй открыть Word.

Очень удивишься…

   Имитирующий работу

50 — 27.07.17 — 18:11

(48) у метода Open больше одного параметра, программистушко

   Garykom

51 — 27.07.17 — 18:14

(50) Не в этом проблема, хотя может помочь если на запись нет прав открыть.

   Вафель

52 — 27.07.17 — 18:15

(49) но ексель то работает

   Garykom

53 — 27.07.17 — 18:15

(52) «Может проблема в настройке компонент, там для Excel настраивался запуск от текущего пользователя и папка «C:WindowsSysWOW64configsystemprofileDesktop» «

   Cyberhawk

54 — 27.07.17 — 18:19

(48) Я уже выполнил эту роль благодаря тебе, ведь ты уже открыл ссылку

   Pilokarpios

55 — 27.07.17 — 18:53

(49) Все работает. Сервер 1с работает от того же юзера, от которого я пробую.

   Pilokarpios

56 — 27.07.17 — 18:58

(55) Всмысле «Все работает» это открываются Excel и Word файлы.

   Pilokarpios

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

   Fram

58 — 27.07.17 — 20:06

(56) попробуй свой код засунуть в обработку с обычной формой и открыть в том сеансе с видимым вордом.

   Pilokarpios

59 — 27.07.17 — 20:16

(58) Спасибо за совет, но не буду тратить время. Сегодня перерыл страниц 200 с подобными темами, я так и не увидел рабочих решений с предпросмотром word документов через управляемые формы. Excel завёлся, как и во многих темах, что мне попадались Что качается word, не видел рабочего решения, только если на стороне клиента колдовать, этот вариант не устраивает.

   Pilokarpios

60 — 27.07.17 — 20:24

(58) Проверил на обычных формах, тоже самое.

   Garykom

61 — 27.07.17 — 20:31

http://1c.ruboard.ru/public/568913/

v8: Ошибка получения объекта COM при переходе на клиент-серверный вариант работы

Т.е. для сервера 64 (система и 1С) и офиса 32 трабла решается (возможно) через создание папочек и регистрацию СОМ+

   Garykom

62 — 27.07.17 — 20:34

(61)+ Но с учетом что сервер 1С нынче модно на линуксах и с потсгресом юзать или даже в облаках… советую выкинуть офис и сделать нормальное решение.

   Pilokarpios

63 — 27.07.17 — 20:35

Может есть знатоки?

cmd: «mmc comexp.msc /32» и «mmc comexp.msc /64»

Службы компонентов->Компьютеры->Мой компьютер->Настройка DCOM:

«Microsoft Excel Application» имеется, а «Microsoft Word Application» нету, может он по другому называется или его нужно добавить?

   Pilokarpios

64 — 27.07.17 — 20:36

(62) Я за хорошее решение! Но сейчас тупо проблема стоит именно в WORD и COM

   Pilokarpios

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();

который у меня не работает ))

   Cyberhawk

66 — 27.07.17 — 20:41

(65) Так у тебя не такой код приведен, поэтому и не работает. В ветке тебе уже намекнули на важную строку.

   Имитирующий работу

67 — 27.07.17 — 20:41

(59) > так и не увидел рабочих решений

А ты не пробовал не искать куски кода, а пытаться понять почему оно не работает?

   Garykom

68 — 27.07.17 — 20:42

(66) Word.Displayalerts = 0;

   Garykom

69 — 27.07.17 — 20:46

Все же самое правильное то поднять в сети (если нет желания пользоваться кучей онлайн конвертеров doc(x)2html) свой конвертер из офиса в html и заюзать его из 1С.

Лучше всего в момент когда файлы офиса засовываются/прикрепляются к 1С, банально отправляем файлик в сервис и конвертированный в html ответ прицепляем куда нуна.

   Pilokarpios

70 — 27.07.17 — 20:49

(68)

Word = Новый COMОбъект(«Word.Application»);

Word.Displayalerts = 0;

Word.Documents.Open(«D:гребанныйфайл.doc»);

тоже самое, зависает процесс WINWORD.EXE, не грузит процессор, просто висит. В ручную файл открывается. если процесс был грохнут, при ручном открытии пишет, что пред открытие было сбойным.

(69) Сервер закрыт для онлайн «гуляний».

   Fram

71 — 27.07.17 — 20:49

(60) а окно Word открылось? Что там?

   Pilokarpios

72 — 27.07.17 — 20:52

(71) Н и ч е г о не открылось, тупо зависает процесс winword, грешу на разрядность и настройки компонент DCOM. DCOM уходят в прошлое, да знаю.

   Pilokarpios

73 — 27.07.17 — 20:53

(72) хотя если бы это было так, то COM объект не создался бы, а он создается и его можно пощупать в отладчике, после:Новый COMОбъект(«Word.Application»)

   Pilokarpios

74 — 27.07.17 — 20:57

(69) Имеется ввиду поднять сервис в сети с рабочим word и через него (через webсервис) конвертировать файлы в html, тоже вариант, но игра не стоит свеч, я думал всё проще с word, т.к. с Excel всё взлетело.

   Cyberhawk

75 — 27.07.17 — 20:58

Пропиши вижимость Ворда сразу после создания СОМ-объекта

   Pilokarpios

76 — 27.07.17 — 21:01

(75)

MSWord = Новый COMОбъект(«Word.Application»);

работает: MSWord =СОМОбъект…

MSWord.Visible = Истина;

Процесс зависает…

дальше даже кода нет

   timurhv

77 — 27.07.17 — 21:09

(76) Ты старые экземпляры в диспетчере убил?

Журнал ошибок в Windows смотрел? Что пишет?

   Cyberhawk

78 — 27.07.17 — 21:10

Может у конфы не разрешена модальность. В попытку завернуть, проверить исключение.

Ну и попробовать через Documents.add

и активацию конкретного документа

   Lama12

79 — 27.07.17 — 21:16

Про драйвер принтера уже говорили?

   Pilokarpios

80 — 27.07.17 — 21:17

(65) {Форма.Форма.Форма(132)}: Ошибка при вызове метода контекста (Add)

    ДокументН = Word.Application.Documents.Add();

по причине:

Произошла исключительная ситуация (Microsoft Word): Не удается запустить событие.

   Pilokarpios

81 — 27.07.17 — 21:18

(77) Естественно убил

   Pilokarpios

82 — 27.07.17 — 21:20

(77) Ошибки в журнале только после насильногозавершения процесса, ничего там нет.

   Pilokarpios

83 — 27.07.17 — 21:23

(79) Нет

   Garykom

84 — 27.07.17 — 21:29

(70) >Сервер закрыт для онлайн «гуляний».

ну так на этом же сервере и поднять свою веб-сервису

   Pilokarpios

85 — 27.07.17 — 21:34

(84) Я так понимаю, сервис не будет (на этом же сервере) юзать Новый COMОбъект(«Word.Application»), есть какой то волшебный метод msword *.doc файл конвертировать в html без онлайн конверторов?

   Garykom

86 — 27.07.17 — 21:35

(74) Не обязательно с MS Word, можно что угодно вплоть до LibreOffice или любого рабочего решения.

Типа https://github.com/mirkonasato/pyodconverter

   Garykom

87 — 27.07.17 — 21:35

(85) угу

   Garykom

88 — 27.07.17 — 21:38

   Pilokarpios

89 — 27.07.17 — 21:45

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

   Garykom

90 — 27.07.17 — 21:46

(89) оно локальное

короче, прочитай (88) и используй ЗапуститьПриложение или КомандаСистемы

   Pilokarpios

91 — 27.07.17 — 21:49

(90) Спасибо тебе добрый человек, ты меня направил в нужном направлении.

   Pilokarpios

92 — 27.07.17 — 21:49

(90) а насчет ЗапуститьПриложение или КомандаСистемы отдельное спасибо

   Имитирующий работу

93 — 27.07.17 — 23:33

(92) Прошло 4 часа после (19). Эхэх…

   Pilokarpios

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 дня, эх. Мне этот вариант сразу же не нужен был. САРКАЗМ!!!

так кто дурак то в итоге?

Тэги:

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Word application для delphi
  • Word application вставить текст
  • Word application visual studio
  • Word application visible true
  • Word apple in french