Имя: Пароль:
1C
1С v8
Закрытие объекта "Word.Basic"
,
0 Voittamaton
 
26.07.12
17:51
Доброго времени суток!
Столкнулся с такой проблемой. Открываю документ и печатаю, после чего закрываю.

Ворд = Новый COMОбъект("Word.Basic");
Ворд.Documents.Open("C:\Файл.dotx");
Ворд.FilePrint(0,0,"4","","","",0,2,"2,4");
Ворд.FileClose(2);

После этого остаётся процесс "WINWORD.EXE", которых после нескольких циклов накапливается много штук и в дальнейшем 1С отказывается печатать.

Также пробовал реализовать печать с помощью COM-объекта ("Word.Application"), но результат тот же.

Ворд = Новый COMОбъект("Word.Application");
Ворд.Documents.Open("C:\Файл.dotx");
Ворд.FilePrint(0,0,"4","","","",0,2,"2,4");
Ворд.Quit();

Выручайте! Как программно закрывать процесс после распечатки документа? Спасибо всем участникам!
1 le_
 
26.07.12
17:56
Ворд.Quit();
Ворд = Неопределено;
2 Popkorm
 
26.07.12
17:59
(1)либо :
Ворд.Close()
3 Voittamaton
 
26.07.12
18:01
Верно... Дело было в этой строчке:

Ворд = Неопределено;

Огромное спасибо!
4 Voittamaton
 
26.07.12
18:09
Хм... А с "Word.Basic"

Ворд = Неопределено;

Не работает
5 le_
 
26.07.12
18:19
(4) А quit-то делаешь?
6 le_
 
26.07.12
18:21
wordBasic.OleProcedure("Quit");
wordBasic = Неопределено;
7 Voittamaton
 
28.07.12
12:02
(6) С объектом "Word.Basic" не работает .OleProcedure("Quit"), выдаёт:

Метод объекта не обнаружен (OleProcedure)
Ворд.OleProcedure("Quit");
8 Voittamaton
 
28.07.12
12:44
Разобрался!

   Ворд = Новый COMОбъект("Word.Application");
   Ворд.Documents.Open("F:\!Проекты\ЦДЗ Илария\Электронный журнал\Договор.dotx");
   Актив = Ворд.ActiveDocument();
   
   Попытка
       Актив.Variables("Номер").Value = Формат(Число(ЗаписьОбъект.Номер), "ДФ=""ЧГ=0""");
   Исключение
       Актив.Variables("Номер").Value = ЗаписьОбъект.Номер;
   КонецПопытки;
   Актив.Variables("Дата_Число").Value = Формат(ЗаписьОбъект.День, "ДФ=""дд""");
   Актив.Variables("Дата_Число2").Value =  Формат(ЗаписьОбъект.День, "ДФ=""дд""");
   Актив.Variables("Дата_Месяц").Value =  Врем.МесяцПрописью_РП(ЗаписьОбъект.День);
   Актив.Variables("Дата_Месяц2").Value =  Врем.МесяцПрописью_РП(ЗаписьОбъект.День);
   Актив.Variables("Дата_Год").Value =  Формат(ЗаписьОбъект.День, "ДФ=""гггг""");
   Актив.Variables("Дата_Год2").Value =  Формат(ЗаписьОбъект.День, "ДФ=""гггг""");
   
   Актив.Variables("Телефон").Value =  ЗаписьОбъект.Пациент.Телефон;
   Актив.Variables("Телефон2").Value =  ЗаписьОбъект.Пациент.Телефон;
   Актив.Variables("Пациент").Value =  ЗаписьОбъект.Пациент.Фамилия + " " + ЗаписьОбъект.Пациент.Имя + " " + ЗаписьОбъект.Пациент.Отчество;
   ВозрастВМесяцах = Врем.РазностьМеждуДатамиВМесяцах(ЗаписьОбъект.Пациент.ДатаРождения, ТекущаяДата());
   Если ВозрастВМесяцах >= 12 * 18 Тогда
       Актив.Variables("Представитель2").Value =  Пациенты.СформироватьФамилиюИО(ЗаписьОбъект.Пациент);
       Актив.Variables("Представитель3").Value =  Пациенты.СформироватьФамилиюИО(ЗаписьОбъект.Пациент);
       Актив.Variables("Представитель4").Value =  Пациенты.СформироватьФамилиюИО(ЗаписьОбъект.Пациент);
   КонецЕсли;
   
   Ворд.Documents.Close();
   Ворд.Application.Quit();
9 Voittamaton
 
28.07.12
12:45
После использование "Неопределено" проблемы продолжали возникать при закрытии изменённого документа. Проблема решилась после использования команды:

Ворд.Documents.Close();
10 Voittamaton
 
28.07.12
12:46
Разбираться с "Word.Basic" уже нет желания, но думаю, там всё по схожей схеме.
11 Voittamaton
 
28.07.12
12:49
И одно маленькое замечание насчёт "Word.Application": при закрытии в (8) на секунду-две открывается окно Word. Неприятная мелочь.
12 Voittamaton
 
28.07.12
13:00
Всё-таки разобрался с "Word.Basic":

Ворд.AppClose(2);
AdBlock убивает бесплатный контент. 1Сергей