Имя: Пароль:
1C
1С v8
Как сделать окно MS Word активным при печати из 1С?
, ,
0 Ставрогин
 
23.09.11
08:20
Выполняю следующий код, при этом все работает, и WORD открывается, но активным остается окно из которого его печатали в 1С:

   Попытка
       ТекстовыйПроцессор = Новый  COMОбъект("Word.Application");
   Исключение            
       ОбщиеПроцедурыКлиентСервер.СообщитьПользователю("Не удалось создать COM-объект Microsoft Word, проверьте установлен ли он вашем компьютере.", "!!!");
       Возврат;
   КонецПопытки;        
   ТекстовыйПроцессор.Visible = 0;
   Document=ТекстовыйПроцессор.Documents.Open(ИмяФайла,, Ложь);
   Document.SaveAs(ИмяФайла);  
   ТекстовыйПроцессор.Visible = Истина;    
   ТекстовыйПроцессор.Activate();
1 План счетов
 
23.09.11
08:34
а зачем?
Document.SaveAs(ИмяФайла);
2 Ставрогин
 
23.09.11
08:36
Иначе он его открывает не сохраненным и при закрытии пользователем задалбывает его вопросом, а не хочет ли он его сохранить.
3 Cube
 
23.09.11
08:40
(2) Вместо этого
Document.SaveAs(ИмяФайла);
Напиши вот это
Document.Saved = Истина;
И будет тебе счастье :)
4 Cube
 
23.09.11
08:40
+(3) Это я про проблему в (2)
5 Ставрогин
 
23.09.11
08:43
(4) спасибо, вопрос (0) все еще открыт
6 План счетов
 
23.09.11
08:43
Проверил у себя, получаается как в (0) >>WORD открывается, но активным остается окно из которого его печатали в 1С:
7 Ставрогин
 
23.09.11
08:46
(6) :) ага, что делать будем?
8 Cube
 
23.09.11
08:47
(7) А я не парюсь, что оно в фоне открывается :)
9 План счетов
 
23.09.11
08:49
(7) если пользователи его не редактируют, то отправь его сразу на печать и закрой ВОРД.
10 Ставрогин
 
23.09.11
08:51
(9) проверяют и редактируют, не всегда все поля из 1С можно заполнить
11 План счетов
 
23.09.11
08:57
(10)
вот так попробуй:

Предупреждение("Создан COM-объект Microsoft Word, он открыт но его не видно, поищите его в панели !!!", 60);

)
12 Tirael
 
23.09.11
09:48
у меня вот так открывается и становится активным

Document.Activate();
ТекстовыйПроцессор.Application.Visible = 1;
13 Ставрогин
 
23.09.11
09:53
(12) мне не помогла, как у вас windows? word?
14 Tirael
 
23.09.11
09:56
XP и 2007 word
15 Ставрогин
 
23.09.11
10:00
У меня Win 7 и Word 2010
16 Tirael
 
23.09.11
10:10
(15) Видимо косяк с виндой - твой код у меня нормально отрабатывает.
17 gkvgkv
 
23.09.11
10:13
(0) у меня тоже не активно (XP word 2003)
18 Tirael
 
23.09.11
10:24
Может я что-то пропустил, вот весь код

Попытка
  Ворд = Новый  COMОбъект("Word.Application") ;
  НашФайл = Ворд.Documents.Open(ИмяФайла); //Открываем файл
Исключение
  Предупреждение("Неудалось создание СОМ объекта.");
  Возврат "";
КонецПопытки;
НашФайл.GrammarChecked=0;
НашФайл.ShowGrammaticalErrors=0;
       
Ворд.Visible = 0;
НашФайл.SaveAs("c:\111.docx");  
Ворд.Visible = Истина;    
Ворд.Activate();

//Заполнение документа
19 Ставрогин
 
23.09.11
14:38
(18) тоже самое что и у меня
есть какой-то метод SetActiveWindow правда не пойму какого класса, может его использовать
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой