powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Documents.Count = 0
25 сообщений из 78, страница 3 из 4
Documents.Count = 0
    #38557741
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Та же самая программа и Word работают на других серверах?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557764
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyТа же самая программа и Word работают на других серверах?
Так точно. Совершенно верно. Именно так.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557785
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

Версия Windows и Office тоже такие же?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557912
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не имею возможности проверить, но Офис оба раза 2007, а вот Windows тут 2008, а там, где работает, кажется, 2003.

Еще одна деталь. Программка, которая не сервис и работает, при запуске через Scheduler тоже не работает. Может быть, это какая-то новая политика в 2008...
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557929
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычГоспода, я вернулся. Новый сервер нам не дали. Сказали, что это виртуальная машина и от ее переустановки ничего не изменится. Так что я продолжаю.

iMrTidyПредлагаю попробовать добавить интерактивного пользователя со всеми возможными правами отдельно как в Microsoft Word Application, так и в My Computer, чтобы окончательно исключить подозрение на права доступа пользователя.
Прописал во всех возможных местах явным образом того юзера, под которым запускается сервис. Включая задание прав для этого конкретного юзера. Ничего не изменилось.

Shocker.ProТак а что происходит-то при попытке обратиться к свойству (только не через ActiveDocument)? Исключение? А какой текст ошибки?
Сделал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
                            Dim x As Object
                            Try
                                x = o.Documents.Open(...)
                                x = o.Documents.Add(...)
                            Catch ex As Exception
                                Stop
                            End Try


Прохожу пошагово. Никакой ошибки не возникает ни на Open, ни на Add. Оба раза вижу, что x = Nothing.

Тупик, господа.

Саныч, вот кусочек из одной программки "на ворде", за которой мне иногда приходится присматривать: (обрати внимание на текст, который я выписывал 25 мая 2012 года, вывесив язык набок от усердия).

Код: vbnet
1.
2.
3.
4.
5.
6.
 
    Set rDoc = Documents.Add(templateFN)
    '25.05.2012 файл существует в операционной системе, но word не захотел его открыть
    If rDoc Is Nothing Then
     MsgBox "Файл шаблона " & templateFN & " существует, но не был открыт Word. Проверьте настройки безопасноти. Добавьте местоположение файла в список безопасных.", vbCritical + vbOKOnly, True
    End If



Я скромно предполагаю, что это точно твой, что это твой случай.

PS
а я, между прочим, лестицу до сих пор перидически просматриваю.
Все жду советовательного ответа на свой вопрос.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557930
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ух ты, последним постом форум сломал - нажал отправить, а в ответ топик засиял сонмом привидений, по штуке в каждом сообщении над ником автора сообщения.
сила ворда, етить...
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38557933
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот теперь я понял, в чем сила открытого кода - в безопасноти.
Эхь.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38558111
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyДобавьте местоположение файла в список безопасных.
Рад тебя видеть. И что я должен делать, получив сам от себя такое сообщение? Что это за список безопасных местоположений и как в него добавляют?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38558282
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа! Решение найдено. Я поднял на уши не только форум, но и фирму, в которой работаю, и мне здесь коллеги нашли правильную ссылку. Вот она (точнее, две):

http://stackoverflow.com/questions/1006923/automating-office-via-windows-service-on-server-2008
http://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice

В двух словах решение следующее. Надо просто создать две папки:

C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop

Это невозможно вывести из общих знаний, сколь бы глобальными они ни были. Спасибо всем за потраченное на меня время.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38558301
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздравляю - да уж!
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38558357
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Оно того стоит.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38563513
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хаха, господа. Еще один человек в нашей фирме столкнулся с той же проблемой. Его направили за решением прямо ко мне.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818302
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, проблема вернулась. Другой сервер. Сделал то, что написано в этом топике. Если раньше программа проходила строчку Documents.Add без ошибок, но документ не добавлялся, то теперь я получаю ошибку на этой строчке, а потом на еще одной:

ошибкиThe remote procedure call failed. (Exception from HRESULT: 0x800706BE)
at Microsoft.Office.Interop.Word.Documents.Add(Object& Template, Object& NewTemplate, Object& DocumentType, Object& Visible)

The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)
at Microsoft.Office.Interop.Word.ApplicationClass.Quit(Object& SaveChanges, Object& OriginalFormat, Object& RouteDocument)
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818386
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyЕсли Microsoft Word Application отсутствует в списке, то можно добавить соответствующий ключ в реестер вручную или как рекомендуется здесь .
Трудно сказать, отсутствует или нет. В списке есть вот что:
Microsoft Office Word 97 - 2003 Document
При этом сам Ворд - 2007. Я попытался сделать то, что написано по ссылке. Открылся Ворд и сказал мне: This file could not be found.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818715
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,
авторHRESULT: 0x800706BE

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

авторMicrosoft Office Word 97 - 2003 Document

ну, если физически регистрация ворда не "слетела", может быть, окажется достаточным на вкладке настроек dcom для авторMicrosoft Office Word 97 - 2003 Document
сказать:
а) что ему,[Microsoft Office Word 97 - 2003 Document], разрешено взаимодействие с рабочим столом (это третья вкладка настроек в "современной" панельке, по памяти).
б) дать явные права на запуск конкретно для того пользователя, от имени которого стартует "сервис" (вторая вкладка, по памяти...).

(Слово "сервис" взято в кавычки, т.к. с точки зрения использующего кода это может выглядеть как "обычная автоматизация". Но если "обычная автоматизация" запускается из-под сервиса, то сама работает в условиях "сервиса")
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818735
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч, посмотри
http://support.microsoft.com/kb/960007/en
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818801
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyа что поменялось в системе - версия ос новая установлена, патч какой безопасный поставили, или что?
Другой заказчик, другой сервер.

boobyа) что ему,[Microsoft Office Word 97 - 2003 Document], разрешено взаимодействие с рабочим столом (это третья вкладка настроек в "современной" панельке, по памяти).
Попробую, об исполнении доложу. Правда, сомнительно мне...

boobyб) дать явные права на запуск конкретно для того пользователя, от имени которого стартует "сервис" (вторая вкладка, по памяти...).
Это я уже несколько раз менял туда-сюда. Разные источники предлагают делать то так, то Interactive user.

boobyВладимир Саныч, посмотри
http://support.microsoft.com/kb/960007/en
Это я уже видел.
You must have Windows Server 2003 SP2 installed to apply this hotfix.
А у меня 2012.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818884
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

А Word вручную в принципе открвыается?

Может быть это поможет?
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818917
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

авторРазные источники предлагают делать то так, то Interactive user.

не-не. "то так, то интеракив юзер" - это читать надо так:
В настройках систем разных версий птички, касательные запуска сеанса могут отличаться по своему составу.
Во всех случаях есть птички, описывающие, от имени какого пользователя запущен сервис.
В старых версиях - есть отдельная птичка "interactive user".
В "новых версиях" на отдельной вкладке описывается пользователь, от имени которого запускается сервис, а на другой вкладке дается отдельное специальное разрешение для приложения, запущенного сервисом от имени заказанного пользователя общаться с рабочим столом.

Пусть у тебя есть некий сервис S, использующий твою автоматизацию и запускаемый от имени пользователя U.
тогда для компонента [Microsoft Office Word 97 - 2003 Document],
а также компонента [Документ Microsoft Office Word 2007 с включенными макросами] (и т.п. найденными)
ты
б) даешь явные разрешения на запуск таких компонентов через dcom от имени пользователя U
и,
а) на закладках настроек доступа к рабочему столу, ставишь птичку,
разрешающую такому, запущенному через dcom от имени пользователя U компоненту, общение с рабочим столом.
Там не ineractive user, а какой-нибудь desktop communication (или а-ля) будет написан.
Кроме того,
в) в самом ворде местоположение шаблона предпочтительно явно пометить как безопасное.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818930
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iMrTidyА Word вручную в принципе открвыается?
Конечно. Если бы не открывался, я бы не такие вопросы задавал.

iMrTidyМожет быть это поможет?
Попробую, доложу. Спасибо.

boobyВ настройках систем разных версий птички, касательные запуска сеанса могут отличаться по своему составу.
Да не. Я гуглю разные лекарства от моей проблемы. И где-то советуют зайти и переставить так, а где-то наоборот.

boobyв) в самом ворде местоположение шаблона предпочтительно явно пометить как безопасное.
А это я уже не первый раз вижу, но все равно не понимаю, как и где.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818946
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

авторА это я уже не первый раз вижу, но все равно не понимаю, как и где.
визуалка у 2007, 2010 и 2013 отличается. Поэтому первый клик по разным местам делать придется.
В 2013 - это пункт меню Файл, потом клик в "Центр безопасности", в 2007м, вероятно, первый клик по блямбе в верхнем левом углу с ново-офисной иконой (не помню как она называется - быстрый доступ не знаю к чему).
Но ключевые слова остаются одинаковыми.
Надо достичь того, что названо "Центр безопасности". Там встретятся термины (списки) двух сортов - "безопасные документы" и "безопасные местоположения". Я бы предложил сосредоточиться на "безопасных местоположениях", т.к. в них - все документы безопасны.
Если твой каталог с шаблонами - сетевой, то его не получится добавить в список безопасных местоположений до тех пор, пока не выставлена птица "разрешить безопасные местоположения в сети".

Есть еще одна штука. Если все вышеперечисленное (настройки dcom+настройки безопасных местоположений) выполнено,
это не значит, что твой код не скажет fail.

Достоверно известно, что если твоя автоматизация создает на лету в свежеиспекаемом документе модули кода vba
с целью обеспечения дальнейшей независимой от сторонних надстроек автоматизации, привязанной к этому конкретному документу,
то необходимо также взвести птицу "доверять доступ к проектам VBA".
Эта птица живет в центре безопасности, где-то в макросы-безопасность макросов.

Кроме того, мои "наблюдашки" показывают, что эту птицу следует выставить не только когда ты явно генерируешь
код VBA в верстаемом документе, но и тогда, когда твоя автоматизация открывает шаблон/документ с уже зафиксированным в таком документе кодом vba.
Я не знаю как технически правильно описать происходящее.
На пальцах - похоже на то, что открытие такого документа (с самостоятельным vba-кодом) после подъема автоматизации,
работающей в контексте текущего Word.Application (Excel.Application etc),
изменяет состояние списка наличных vba-проектов и самого этого факта достаточно, чтобы сказать Fail, если птица доверия доступа к vba-проектам не выставлена.


Т.е. (на примере Excel) пусть твоя автоматизация организована так:
1) Некий сервис S выполняет запуск файла пускач.vbs
2) в файле пускач.vbs код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
...
  REM поднимаем Excel
  Set objExcel = CreateObject("Excel.Application")

  REM Поднимаем книгу с кодом VBA, который обучен выполнять специфичекую автоматизацию 
  REM т.е. - в cTplFile есть vba-код
  Set oAutomationXla = objExcel.workbooks.open(cTplFile)
  
 REM теперь в objExcel есть инициализированный VBA-проект

 ...
 REM а теперь пытаемся открыть шаблон, по которому будет вертаться новый документ такой,
 REM что в этом файле шаблона есть собственный vba-код
 REM (т.е. в cTemplateFile тоже есть vba-код)
 Set oTemplateBook = objExcel.Workbooks.Open(cTemplateFile, False, True) ' на этой строке (по моим наблюдениям) будет заявлен Fail, 

 REM если в настройках безопасности макросов не выставлена птица доверия к объектам vba-проектов

 REM а мы-то старались, чтобы в конце концов сказать:

  objExcel.Run  oAutomationXla.Name &  "!Автоматизируй_для", myCreativeParametr
 
...





И последнее - если автоматизация "правильно сделана" - настройки типа "уровень безопасности макросов" можно оставить в покое.
Все сработает как надо без их ворошения.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818949
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

ну фу же, какая бяка... бее..

авторКроме того, мои "наблюдашки" показывают, что эту птицу следует выставить не только когда ты явно генерируешь
код VBA в верстаемом документе, но и тогда, когда твоя автоматизация открывает шаблон/документ с уже зафиксированным в таком документе кодом vba.

Если ты, дорогуша, открываешь шаблон с кодом , то в созданный по шаблону документ,
vba-код переносится автоматически.
А это, креативный ты наш, и есть та самая "генерация vba-кода в новом документе на лету".
Наблюдашкин ты или нет, а без птички доверия к vba-проектам жить не сможешь.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38818950
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,
Сорри.
я тут сам с собой про Excel поговорил.
О котором никто не спрашивал.
Мне бы надо чаще спать.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38820230
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, первый доклад о результатах. Нашел Trusted locations и добавил туда место, из которого я открываю файлы (а заодно и то, в которое сохраняю).

Хорошая новость. Ошибки исчезли! Код проходится без ошибок.

Плохая новость. Файл, который создается моим кодом, не открывается в Ворде. Хотя я отлаживаю на примере, в котором файл должен просто открываться и сразу сохраняться командой Save As. И размер этого файла вышел примерно вдвое больше, чем у исходного. Не знаю, продолжение ли это тех же проблем или я чего-то напутал в своих настройках.

На всякий случай прилагаю и исходный файл, и созданный программой.
...
Рейтинг: 0 / 0
Documents.Count = 0
    #38820282
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,

А что нужно увидеть в этих файлах?
Дома у меня только 2003й ворд с приделанной читалкой docx-файлов.
Мой 2003й одинаково успешно открывает оба файла, и показывает их без видимых визуальных различий.
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 3 из 4
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Documents.Count = 0
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]