|
|
|
Формирование Word через терминал - долго работает | ☑ | ||
|---|---|---|---|---|
|
0
Михаил 1С
14.04.11
✎
08:34
|
Здравствуйте!
У меня есть задача - надо сформировать Word-документ из 1с, я делаю это средствами com - соединяюсь с Word.Application. Если 1с запускать на серевере (через удаленный рабочий стол), то ждать надо Очень долго! При этом, на локальной машине все летает. Помогите пожалуйста - в чем дело? Что может быть такого при работе на сервере через уд.раб.стол? |
|||
|
1
Михаил 1С
14.04.11
✎
08:37
|
При этом, Ворд на сервере работает хорошо, без проблем.
И во время выполнения моей программы можно запускать окна ворда интерактивно безо всяких тормазов, а вот формирование документа из 1с при этом где-то курит или обедает. |
|||
|
2
Михаил 1С
14.04.11
✎
10:23
|
апп!
|
|||
|
3
Wobland
14.04.11
✎
10:26
|
ну я не наю... разве что код посмотреть...
|
|||
|
4
Михаил 1С
15.04.11
✎
08:43
|
Код такой:
MSWord = Новый COMОбъект("Word.Application"); НашDocument = MSWord.Documents.Open(ИмяФайла); ... Диапазон = НашДокумент.Range(); Поиск = Диапазон.find; //далее я нахожу нужные слова в тексте Можно перечислять дальше, но главное вот что - самые тормоза идут на строчках Диапазон = НашДокумент.Range(); и Поиск = Диапазон.find; //они запускаются много раз. То есть - долго работает обращение к СОМ-объектам, даже если они являются свойствами уже существующих объектов (Find - свойство СОМ-объекта Range, и оно тоже является СОМ-объектом) Вывод - надо как-то настроить сервер, чтобы обращение к СОМ-объектам шло быстро. Возможно, что это именно 1с долго к ним обращается. Возможно, что они создаются новыми. Возможно, что дело в том, что работа идет через Automation - сервер. Вот такая штука. |
|||
|
5
Михаил 1С
15.04.11
✎
08:45
|
Кто-нибудь знает - как надо настроить сервер?
Или надо его сменить? (сейчас у меня Win server 2003 и Word 2003) |
|||
|
6
Михаил 1С
15.04.11
✎
08:47
|
Может быть можно внутри 1с настроить Automation - соединение? Возможно, что кроме команды
Новый COMОбъект("Word.Application") есть еще другие, которыми можно все настроить? |
|||
|
7
Одиночка
15.04.11
✎
08:50
|
поковыряйся в dcomcnfg
|
|||
|
8
Михаил 1С
15.04.11
✎
08:52
|
Эх, блин, возможно, что и там.
Я там уже ковырялся, пока ответа не нашел. |
|||
|
9
Михаил 1С
15.04.11
✎
11:29
|
Ау, люди!
Знает ли кто ответ? |
|||
|
10
Михаил 1С
10.05.11
✎
06:59
|
Ну чтоже - расскажу я вам в чем было дело, может быть кому-нибудь тоже будет надо. Решение задачи такое: сразу после
MSWord = Новый COMОбъект("Word.Application"); НашDocument = MSWord.Documents.Open(ИмяФайла); надо делать visible = true; Документ-ворд при этом формируется на глазах пользователя, и что главное - он уже не ленится, а работает прямо на глазах! Если и не летает, то по-крайней мере бегает! В общем, видимо OLE, COM - соединение с Ворд на сервере надо настраивать, 1с видимо это делает плохо, но если ворд работает не в фоновом режиме, а visible, то этому приложению по-умолчанию даются хорошие ресурсы и без доп.настройки. Вот так, я победил! Желаю победы и вам в ваших Битвах! |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |