Произошла исключительная ситуация microsoft word не удается активизировать приложение
Ребята помогите, 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С с неизвестной ошибкой
+ Кста на .Net есть прекрасные средства для работы с файловой системой и ее событиями, даже изменения файликов можно отслеживать и пересоздавать "веб превью".
Да мы поняли что если привыкли микроскопом гвозди забивать то уже никак. -Ой у меня микроскоп не работает -Так он же электронный, а не советский чугунный
Да причем тут это, зависает WORD, мне млять что теперь все бросить и перевести контору на LINUX, хватит уже, противно слушать, умные все такие.
если про Компоненты x32 и x64, то проблема возникает на этом этапе: Word = Новый COMОбъект("Word.Application"). Но COM же срабатывает и WINWORD.EXE заводиться, значит не в компонентах дело.
Зайди на сервер от юзера от которого выполняется процесс "сервера 1С" и попробуй открыть Word. Очень удивишься.
"Может проблема в настройке компонент, там для Excel настраивался запуск от текущего пользователя и папка "C:WindowsSysWOW64configsystemprofileDesktop" "
Корпорация 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" нету, может он по другому называется или его нужно добавить?
Так у тебя не такой код приведен, поэтому и не работает. В ветке тебе уже намекнули на важную строку.
> так и не увидел рабочих решений А ты не пробовал не искать куски кода, а пытаться понять почему оно не работает?
Все же самое правильное то поднять в сети (если нет желания пользоваться кучей онлайн конвертеров doc(x)2html) свой конвертер из офиса в html и заюзать его из 1С. Лучше всего в момент когда файлы офиса засовываются/прикрепляются к 1С, банально отправляем файлик в сервис и конвертированный в html ответ прицепляем куда нуна.
тоже самое, зависает процесс WINWORD.EXE, не грузит процессор, просто висит. В ручную файл открывается. если процесс был грохнут, при ручном открытии пишет, что пред открытие было сбойным. Сервер закрыт для онлайн "гуляний".
Н и ч е г о не открылось, тупо зависает процесс winword, грешу на разрядность и настройки компонент DCOM. DCOM уходят в прошлое, да знаю.
хотя если бы это было так, то COM объект не создался бы, а он создается и его можно пощупать в отладчике, после:Новый COMОбъект("Word.Application")
Имеется ввиду поднять сервис в сети с рабочим word и через него (через webсервис) конвертировать файлы в html, тоже вариант, но игра не стоит свеч, я думал всё проще с word, т.к. с Excel всё взлетело.
Может у конфы не разрешена модальность. В попытку завернуть, проверить исключение. Ну и попробовать через Documents.add и активацию конкретного документа
<Форма.Форма.Форма>: Ошибка при вызове метода контекста (Add) ДокументН = Word.Application.Documents.Add; по причине: Произошла исключительная ситуация (Microsoft Word): Не удается запустить событие.Форма.Форма.Форма>
Я так понимаю, сервис не будет (на этом же сервере) юзать Новый COMОбъект("Word.Application"), есть какой то волшебный метод msword *.doc файл конвертировать в html без онлайн конверторов?
Microsoft.Interop.Word.Document.SaveAs. Неверное сохранение
Создаю новый документ .docх и пытаюсь сохранить в папке. Но файл сохраняется в папке на один.
Ошибка на saveas
procedure TForm1.MenuItem6Click(Sender: TObject); begin if filework='' then Saveas else .
Сохранение SaveAs
Подскажите, пожалуйста, как осуществить следующее: необходимо сохранить данные в новый файл excel.
Процедура клиент, сервер ?
Есть доступ до папки у пользователя ?
1С пробовал от админа запускать ?
И что за ошибка хоть ?
1. Процедура сервер
2. Есть доступ
3. Работаю по админом
4. Метод объекта не обнаружен (SaveAs)
Докум.SaveAs(ИмяФайла);
Ermak27, полностью процедуру всю переноси на клиент. А данные для заполнения вытаскивай через функции на сервере несли понадобится.
Перед процедурой у тебя написано &НаСервере, меняй это на &НаКлиенте. Повалятся ошибки, такие как обращение к константе например и начинай их исправлять потихоньку.
Я тебя не так понял на счёт сервера. У меня вообщем ничего не стоит перед процедурой. Нет &НаСервере и &НаКлиенте. У меня база крутиться на sql сервере
Модуле формы. Процедура срабатывает при нажатии кнопки
Попробуй так прописать
ну не стоит и не стоит. где процедура выполняется, когда не стоит? в воздухе? вряд ли.
посмотрите, есть ли у вас на сервере диск Е, куда вы пытаетесь записать, и есть ли права на запись на него
dggrom, выдаёт ошибку Поле объекта не обнаружено (Documents)
Докум.Documents.SaveAs(ИмяФайла);
Добавлено через 2 минуты
Yulunga, Я же писал что диск есть, права есть
Yulunga, у него метод записи самой не видет.
Ermak27, что за конфигурация, какие формы, управляемые или нет ?
по мне так проблема в этом:
Докум=Word.
Word=Докум;
Докум=Word.
запутал с какой-то целью. поэтому и нет там сейвас, что применяется не к тому к чему надо. чехарда. имена переменных закончились?
Yulunga, я закомментировал Word=Докум;, теперь выдаёт ошибку Метод объекта не обнаружен (Range)
Докум = Word.Range(0,0);
Код который в самом начале, он так и выводит как надо, но встала задача сохранить эти вордовские документы по индексу, вот тут проблема и появилась у меня. Вчера я переделал немного код
Создал форму с типом ActiveDocument. Написал код который сохраняет мне вордовские документы но значение заносит в каждый лист, а мне нужно два значения на лист.
Метод SaveAs в Excel
Всем доброго времени суток.Помогите разобраться с методом SaveAs Есть,ну назовем ее,небольшая.
SaveAS excel-файл на странице
привет всем на странице создаётся таблица с выбранными данными из базы данных, теперь требуется.
Lazarus MsWord SaveAs Error
Всем Доброго вечера. Уже 2 дня мучаюсь непонимаю что не так, не получается в lazarus-е сохранить.
Сохранение XL.ActiveWorkBook.SaveAs(buf);
Почему файл не сохраняется в папке в которой находится exe файл? В папке в которой хранится exe.
Не грузятся файлы! Call to a member function saveAs() on null
Я не пойму что он от меня хочет $form->file = UploadedFile::getInstance($form, 'file'); .
Сразу скажу - на файловой базе в Windows 7 этот код работает корректно. Итак, есть: W2016Server + сервер приложений 8.3.10.2580 + самописный документ, в котором есть строчка ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); Сразу говорю - файл я проверял вот так: Тест = Новый Файл("c: emp_pm est.docx"); Если Тест.Существует Тогда - он существует, и сервер его может прочитать. С правами доступа к папкам всё ОК. На сервере установлен Office 2013 (причем я ставил и 32-битный, и 64-битный), COM-компонент ручками зарегистрировал, поэтому строчка ОбъектВорд = Новый COMОбъект("Word.Application"); теперь выполняется без ошибок. В отладчике объект виден. Так вот, спотыкаемся на строчке ДокументВорд = ОбъектВорд.Documents.Add(ИмяФайлаПаспортаЗаявки); Если файл имеет расширение DOC - ошибка такая: <Документ.дкЗаявкаНаПроект.МодульОбъекта>: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Ошибка в Word. Если файл имеет расширение DOCХ - ошибка чуть другая: <Документ.дкЗаявкаНаПроект.МодульОбъекта>: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Приложению Word не удалось прочитать документ. Возможно, он поврежден. Попробуйте выполнить следующие действия: * Откройте файл с помощью команды ''Открыть и восстановить''. * Откройте файл с помощью конвертера резервных копий. Я уже в отчаянии, целый день мучаюсь. Сборки Офиса 2013 - от Кролика, с самыми последними обновлениями, сами понимаете, это бренд, здесь всё пучком. (На Win7 с файловой базой, где всё работает - такая же). Майкрософту я доверяю меньше, но завтра-таки попробую поставить c оригинального образа RTM. Интуиция подсказывает, что не взлетит. Подскажите, что ещё можно попробовать проверить?Документ.дкЗаявкаНаПроект.МодульОбъекта>
А если попробовать зайти на сервер и вручную открыть данный файл? Открывается нормально и содержимое отображает?
[Сборки Офиса 2013 - от Кролика, с самыми последними обновлениями, сами понимаете, это бренд, здесь всё пучком. (На Win7 с файловой базой, где всё работает - такая же). Майкрософту я доверяю меньше, но завтра-таки попробую поставить c оригинального образа RTM] Достаточно спорное утверждение. Я бы больше доверял оригинальному дистрибутиву, чем какой-то сборке, из которой вполне могли повыкидывать "ненужные" вещи.
конечно, открывает и отображает :) Я же не первый день замужем. И даже ЗапуститьПриложение(ИмяФайла), я уверен, будет работать. и папка эта - не первая, до неё я использовал подкаталог во временной папке (пробовал разные). Разумеется, права доступа - всем на всё. Ещё раз повторю, что на локальном компьютере с W7 при такой же структуре папок и том же дистрибутиве Офиса (только без сервера приложений) всё работает. Мне кажется, подвох в Windows 2016. Другой вариант - в сервере приложений. Третьего не дано.
нафиг вам этот офис вообще уперся. распаковал, засунул в xml чо хочешь, запаковал и все дела. быстро, дешево и сердито.
Курить "профиль безопасности" в программе "Администрирование серверов 1С Предприятия". По умолчанию использование COM на сервере 1С запрещено. Не советую работать с вордом екселем и тд. на сервере. Зависнет ворд вместе с ним 1с сеанс, что будете делать?
попробуйте написать сценарий и из него управлять вордлм,а уже этот сценарий запустите из 1ц,если что-то пойдет не так можно убить сценарий и ворд из самой 1с а сервер,кстати,обычно 64-битный
Подвохов там масса. Начиная от того под кем выполняется. Если ушло на сервер значит выполняется под серверным userV8 значит у него должен быть доступ к dcom объекту. Лезешь в dcom офиса и выдаешь ему там все права. Но лучше сделать по другому. docx это упакованные в zip xml. на просторах интернета есть уже готовый код. Также реализацию и можно посмотреть в 1С Договорчики. Фактически docx распаковывается, в нужном xml правится, пакуется обратно. Сам понимаешь никаких проблем с COM и офис не нужен.
изначально офис был 32-битный и была ошибка при создании ком-объекта: ОбъектВорд = Новый COMОбъект("Word.Application"); Но я вручную создал коннектор (по инструкции), и ошибка исчезла. Более того, как сказано в , я снес 32-битный Офис и поставил 64-битный - это ничего не изменило. а ссылку? У меня 15 файлов, часть в DOCX, часть в HTML, надо все их упихать в один. Я делаю это с помощью метода InsertFile. Благодарю, сейчас почитаю про эти профили. Похоже, собака зарыта именно здесь. пользователю usr1cv8 уже выданы везде все права, в том числе в COM+. Насчет XML и ZIP - это интересно, но на будущее. Я уже написал код, который быстро работает на файловой базе. Теперь задача - заставить его выполняться на сервере.
Всем привет! Печ. форма формируется через Word. Открывается файл Word, там делаются замены после чего он сохраняется. Все отлично работало, пока не перенес базу на SQL. Причем, если на этом сервере развернуть эту же базу в файловом варианте - все работает. А на SQL - нет. Пробовал давать какие-угодно права пользователю, от имени которого запускается Агент сервера. Запускал его и под встроенной учеткой и под админом. нифига. Вот фрагмент кода, который перестает работать на SQL: по причине: Произошла исключительная ситуация (Microsoft Word): Данная команда недоступна, так как не открыт ни один документ." Пожалуйста, помогите разобраться в чем дело.
Сам Word установлен? Что выдаст ПолучитьCOMОбъект("", "Word.Application") или ПолучитьCOMОбъект("d: emp emp.docx")
Сначала делал так: Потом переделал жестко: ИмяФайлаШаблона = "C:UsersPublicDocuments" + "ШаблонДоговора.docx"; Но не помогло.
Да, Word установлен. Если в файловом варианте развернуть, все работает, документ отлично формируется и открывается.
Кода запускаешь файловую базу, доступны ком-обхекты локальной системы. Если сервер 1С находится на другой машине, откуда ему знать про "C:UsersPublicDocuments" терминального сервера или локальной машины?
Vladal, Да, я когда разбирался с проблемой, установил все на одну машину. Сервер 1С, SQL и Word. На ней и разбираюсь. zladenuw, ты прав. Там висела целая пачка процессов Word. Я их выбил, но теперь другая ошибка: <ВнешняяОбработка.ФормированиеПоШаблону.МодульОбъекта>: Ошибка при вызове метода контекста (ПолучитьCOMОбъект) Word = ПолучитьCOMОбъект(ИмяФайлаШаблона); по причине: Ошибка получения объекта COM: Операция прерванаВнешняяОбработка.ФормированиеПоШаблону.МодульОбъекта>
Значит что-то из дочерних процессов может висеть и блокировать. Скорее всего, он ответил на твой последний запрос com-объекта, что его прервали. Повтори через время или для верности перегрузи компьютер.
Я с проблемой второй день бьюсь и не раз перезагружал и даже переустанавливал платформу. Если использовать "Word = Новый COMОбъект("Word.Application");", то COM объект создается. Т.е. по идее с СОМ все в порядке. Для полной ясности скажу что стоит: Печатная форма для УТ 11. Хотя непонятно, какое это все имеет отношение к COM объекту. Короче, танцы с бубном продолжаются, спасибо за участие!
Если танцы с бубном не помогут, есть вариант без ворда если у тебя простая замена по тексту на нужные значения. Переименовываешь файл docx в zip, извлекаешь в папку, находишь в подпапках файл с данными в формате xml, производишь в нем замены и назад выполняешь упаковку и переименование.
Pashkaa, это всем бубнам бубен ))) Я уж лучше на файловой версии все оставлю, чем так. Думаю, решение рано или поздно найдется. Буду с разными платформами экспериментировать. Вряд ли я единственный пытаюсь документ Word сформировать из базы 1С на SQL. А судя по тому, что в поиске ничего подобного нет, то ситуация не популярная и легко все может заработать на другой системе или конфигурации. Такие мысли у меня.
напиши сетевую папку. Диск С: лучше не писать. Там есть такая фигня в правах как передача прав подчиненным папкам. Наследование. То есть если ваш админ для диска С: задал неполные права твоему пользователю, то хоть ты застрелись, но хотя и будешь "давать какие-угодно права пользователю" на папку C:UsersPublicDocuments всё равно приоритет у прав на диск С:, которые и применятся.
Посмотри пути. Выполняется наверняка на сервере, значит далеко не факт, что у учетки запуска rphost-a есть права на путь-файл.
Разобрался. Кто бы мог подумать. Как я уже писал, это УТ 11 - т.е. управляемые формы. Перенес выполнение всех операций с объектом "Word = Новый COMОбъект("Word.Application")" с сервера на клиент - все заработало. Не спешите кидать тухлыми помидорами типа "конечно, Word не откроется на стороне сервера". Но раньше-то как-то открывался. Именно это меня и пустило по ложному следу. Выходит, доступность методов COM объектов на файловом сервере и SQL - разная. Какой я сделал вывод: Что касается конкретно метода Word.Documents.Open - если база файл-серверная, методу все равно где выполняться, на клиенте или на сервере. Документ открывается и показывается ни смотря ни на что. Но когда я перешел на SQL, метод ошибки выдавать не стал и внешне отрабатывает как я писал выше. Но если выполняется на стороне сервера - ничего не открывает и дальнейшее обращение к документу дает ошибку, а на стороне клиента - открывает.
из >Разумеется, я сто раз проверил существование файла, все права на него и все такое. В разные места его клал, админские права раздавал. не стыкуется с
Чем же не стыкуется? В я мудрил с самим файлом, а в перенес выполнение кода с сервера на клиент. Короче, флуд пошел.
Обработка подключается как дополнительная обработка. Видимость обработки настроена на вывод кнопки в справочник договоров с контрагентами.
Позволяет заполнять шаблон документа Microsoft Word (DOC) и выводить на экран. Также есть возможность выводить документы PDF.
Список параметров, прописанных в обработке, возможно посмотреть кнопкой «Вывести параметры» из формы обработки. В шаблон возможен вывод Факсимиле.
Возможно группировать документы по определенному виду договора.
Настройка путей и вида договора осуществляется через конфигуратор. Настройки содержатся в макете обработки.
Перед добавлением в дополнительные обработки, следует настроить в макете обработки пути для шаблонов. В комплекте идет 2 файла с примерами шаблонов. Путь для шаблонов в обработке: «C:BaseДоговора»
Требования к ПО: Установленный Microsoft Word, программа просмотра PDF.
Related Posts
8 Comments
Скачала форму, но не могу распечатать договора
Папку Base/Договора сделала, формы 2 добавила в папку, но при печати пишет ошибку.
Может детально опишете как установить и применять форму, я обычный юзер.
А Word установлен?
(1) Проверьте путь к файлам и доступ
Ворд установлен, путь проверила, еще раз загрузила обработку. Теперь пишет ошибку
Подскажите возможно доработать данную обработку под работу в тонком клиенте либо на работу с опенофисом ?
(5) В тонком или веб-клиенте? В тонком все работает. Под опенофис возможно, потребуется переписать процедуры под работу с данным приложением.
В тонком при запуске базы опубликованной на веб сервере, ошибка: Произошла исключительная ситуация (Microsoft Word): Не удается активизировать приложение. Скажите сколько будет стоить переписать обработку под опенофис?
1С УТ11.4 не удается сохранить настройку, пишет «Метод объекта не обнаружен (Сохранить)».
Читайте также: