Цитата:
Сообщение от
Daido
т.е я открываю сам шаблон
X++:
wordDocument = new ComWordDocument_RU();
wordDocument.newFile(templateFile, false);
чужой класс формирует отчет
X++:
Reports.Create_Report(EmplId);
потом мне надо ещё раз в ту книгу доступ получить (сохранить куда то и закрыть)
X++:
wordDocument.documentSaveAs("C:\\My_Report.doc");
wordDocument.quitApplication(true);
А вы уверены в том, что отчет Create_Report(EmplId) строится в той же сессии (приложении) Word - т.е. в той, которую вы открываете как new ComWordDocument_RU()? Что-то я сомневаюсь...
Мне кажется, вам нужно сначала запускать чужой отчет, а потом подключаться в эту "чужую" Word-сессию примерно таким оператором:
X++:
wordApp = COM::getObject('Word.Application');
по аналогии с тем, как было сделано для Excel здесь:
Как проинициализировать COM уже запущенным приложением (Excel)?
Некоторое неудобство такого подхода заключается в том, что если запущено несколько сессий Ворд (например, вы еще сами вручную редактируете какой-то свой документ), то нельзя предсказать в какую сессию подключится COM::getObject. Поэтому перед началом такого процесса все другие Ворды необходимо закрыть, и тогда COM::getObject предсказуемо подключится в единственную сессию.