|
Странно закрывается word на сервере | ☑ | ||
---|---|---|---|---|
0
Gossar1C
21.05.13
✎
10:44
|
Здравствуйте. Заполняю вордовский шаблон в 1С-ке сохраняю в формате PDF и передаю его на клиента, суть проблемы заключается в закрытии ворда, если допустим подключиться удаленно к рабочему столу сервера и в 1С ке распечатать word то он его нормально закрывает и убивает процесс, а если не подключаться а просто взять и из 1Ски распечатать договор то на сервере остается висеть процесс вордовский, не могу понять с чем это связано... прошу помощи. Заранее спасибо. Вот кусок кода закрытия:
Попытка MsWord.Application.Visible = 0; Word = MsWord.Application; Док = Word.Documents(1); Док.Activate(); Замена = Док.Content.Find; Замена.Execute("[НомерДоговора]", Ложь, Истина, Ложь, , , Истина, , Ложь," " + Выборка.Код); Замена = Док.Content.Find; Замена.Execute("[ОбщаяСтрокаДатой]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОбщаяСтрокаСДатой); Замена = Док.Content.Find; Замена.Execute("[Партнер]", Ложь, Истина, Ложь, , , Истина, , Ложь, Выборка.Партнер.Наименование); Замена = Док.Content.Find; Замена.Execute("[КонтактноеЛицоПартнера]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.КонтактноеЛицоПартнера),Выборка.КонтактноеЛицоПартнера,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[НазваниеФирмыПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ПолноеНаименование"]); Замена = Док.Content.Find; Замена.Execute("[ЮридическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ЮридическийАдрес"]); Замена = Док.Content.Find; Замена.Execute("[ФактическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ФактическийАдрес"]); Замена = Док.Content.Find; Замена.Execute("[ТелефонПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(НЕ ЗначениеЗаполнено(ТелефонПокупателя),ТелефонПартнера,ТелефонПокупателя)); Замена = Док.Content.Find; Замена.Execute("[ПочтовыйАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(НЕ ЗначениеЗаполнено(АдресПочтыПокупателя),АдресПочтыПартнера,АдресПочтыПокупателя)); Замена = Док.Content.Find; Замена.Execute("[ИННПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ИНН"]); Замена = Док.Content.Find; Замена.Execute("[ОКПОПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["КодПоОКПО"]); Замена = Док.Content.Find; Замена.Execute("[Р/СПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.РСПокупателя),Выборка.РСПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[ВПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.ВПокупателя),Выборка.ВПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[БИКПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.БИКПокупателя),Выборка.БИКПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[К/СПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.КСПокупателя),Выборка.КСПокупателя,"<не указан>")); Файл = "C:\VremHran" + "\" + "ДоговорПоставки " + СтрЗаменить(Выборка.Код,"/","_"); //Сохраняем в формате pdf Док.SaveAs(Файл,17); Док.Close(0); //Запускаем приложение pdf ЗапуститьПриложение(Файл + ".pdf"); Исключение Сообщить(ОписаниеОшибки()); Word.Quit(); КонецПопытки; Word.Quit(); КОнецЕсли; Да кстати клиент-сервер |
|||
1
Gossar1C
21.05.13
✎
10:45
|
Сорри код не тот, вот действующий:
Попытка MsWord.Application.Visible = 0; Word = MsWord.Application; Док = Word.Documents(1); Док.Activate(); Замена = Док.Content.Find; Замена.Execute("[НомерДоговора]", Ложь, Истина, Ложь, , , Истина, , Ложь," " + Выборка.Код); Замена = Док.Content.Find; Замена.Execute("[ОбщаяСтрокаДатой]", Ложь, Истина, Ложь, , , Истина, , Ложь, ОбщаяСтрокаСДатой); Замена = Док.Content.Find; Замена.Execute("[Партнер]", Ложь, Истина, Ложь, , , Истина, , Ложь, Выборка.Партнер.Наименование); Замена = Док.Content.Find; Замена.Execute("[КонтактноеЛицоПартнера]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.КонтактноеЛицоПартнера),Выборка.КонтактноеЛицоПартнера,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[НазваниеФирмыПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ПолноеНаименование"]); Замена = Док.Content.Find; Замена.Execute("[ЮридическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ЮридическийАдрес"]); Замена = Док.Content.Find; Замена.Execute("[ФактическийАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ФактическийАдрес"]); Замена = Док.Content.Find; Замена.Execute("[ТелефонПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(НЕ ЗначениеЗаполнено(ТелефонПокупателя),ТелефонПартнера,ТелефонПокупателя)); Замена = Док.Content.Find; Замена.Execute("[ПочтовыйАдресПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(НЕ ЗначениеЗаполнено(АдресПочтыПокупателя),АдресПочтыПартнера,АдресПочтыПокупателя)); Замена = Док.Content.Find; Замена.Execute("[ОГРНПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.ОГРНКонтрагента),Выборка.ОГРНКонтрагента,"________________")); Замена = Док.Content.Find; Замена.Execute("[ИННПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["ИНН"]); Замена = Док.Content.Find; Замена.Execute("[ОКПОПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, Сведения["КодПоОКПО"]); Замена = Док.Content.Find; Замена.Execute("[ОКВЭДПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.ОКВЭДКонтрагента),Выборка.ОКВЭДКонтрагента,"________________")); Замена = Док.Content.Find; Замена.Execute("[Р/СПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.РСПокупателя),Выборка.РСПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[ВПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.ВПокупателя),Выборка.ВПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[БИКПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.БИКПокупателя),Выборка.БИКПокупателя,"<не указан>")); Замена = Док.Content.Find; Замена.Execute("[КСПокупателя]", Ложь, Истина, Ложь, , , Истина, , Ложь, ?(ЗначениеЗаполнено(Выборка.КСПокупателя),Выборка.КСПокупателя,"<не указан>")); Файл = "C:\VremHran" + "\" + "ДоговорПоставки"; //Сохраняем в формате pdf Док.SaveAs(Файл,17); //Док.Close(0); ДокументPDF = Новый ДвоичныеДанные(Файл + ".pdf"); Адрес = ПоместитьВоВременноеХранилище(ДокументPDF); Исключение Сообщить(ОписаниеОшибки()); Word.Quit(); КонецПопытки; Word.Quit(); КОнецЕсли; Возврат Адрес; |
|||
2
Ковычки
21.05.13
✎
10:48
|
Для Каждого Окно Из Word.Windows Цикл
Окно.Close(0); КонецЦикла; |
|||
3
Gossar1C
21.05.13
✎
10:53
|
(2) ?
|
|||
4
Gossar1C
21.05.13
✎
11:19
|
Народ подскажите пожалуйста
|
|||
5
dk
21.05.13
✎
11:38
|
MsWord.Application.Visible = -1;
--- погляди на что там при закрытии у тебя ворд матюкается --- ну или DisplayAlerts = 0; |
|||
6
Gossar1C
21.05.13
✎
11:40
|
(5) есть предположение что служба агент сервера работает под Администратором, поэтому если подключить удаленный рабочий стол через админа процессы убиваются, с админом пробуем переключить на системную аутефикацию, потом перезапустим посмотрим
|
|||
7
Gossar1C
21.05.13
✎
18:36
|
не получилось =\ теперь процесс не убивается не так не сяк...
|
|||
8
shurikvz
22.05.13
✎
00:16
|
Перед выходом:
Замена = Неопределено; Док = Неопределено; Word = Неопределено; ? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |