Имя: Пароль:
1C
 
Программно развернуть Окно Word
0 Knowledge
 
17.08.14
20:28
Заполняю макет отчета (activedocument)- формат Word.
Окно Word остаётся свёрнутым.
Как его программно развернуть?  Ос –Windows 7. В интернете есть информация,я пробовал, что нашёл – не помогло. Тема, наверное, старая, но решения я не нашел.

Процедура СформироватьОтчет()
    //инициализация
    Попытка
        Макет = ПолучитьМакет("Макет_doc");
        MSWord = Макет.Получить();
        Инициализация = Истина;
    Исключение
        Сообщить("MSWord не подключен. " +      ОписаниеОшибки(),СтатусСообщения.Важное);
    КонецПопытки;
    Doc = MSWord.Application.Documents(1);
    Doc.Activate();        
    ЗаполнитьПараметрыДокумента(Doc);
    MSWord.Application.Visible= Истина;
    MSWord.Application.WindowState = 2;
    MSWord.Activate();
КонецПроцедуры
1 Myti
 
17.08.14
20:34
WSHShell = СоздатьОбъект("WScript.Shell");
    WSHShell.SendKeys("%");
    WSHShell.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
2 Knowledge
 
17.08.14
20:52
WSHShell = Новый COMОбъект("WScript.Shell");
    WSHShell.SendKeys("%");
    WSHShell.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
Как это отнести к окну  Word?
3 Knowledge
 
17.08.14
21:10
Вот что работает:
MSWord.Application.WindowState  = 2;//свернуть
MSWord.Application.WindowState  = 1;//развернуть
4 Knowledge
 
17.08.14
21:11
т.е. нужно 2 раза подряд: свернуть, потом развернуть.
5 osa1C
 
17.08.14
21:21
Иногда (особенно это актуально для пользователей, которые работают через терминальное подключение к серверу), окно Microsoft Word открывается, но оказывается либо минимизированным, либо свернутым, либо окно 1С перекрывает его. Соответственно пользователь окно Word не видит.

Ниже  приведу два способа, позволяющие «выгнать» окно Word на передний план.

1. У объекта Application есть свойство WindowState, которое возвращает или устанавливает состояние окна документа, которое может принимать три значения: Normal, Maximized и Minimized (в значениях 1С - это 0, 1 и 2 соответственно). Суть данного способа сводится к тому, чтобы свернуть и снова развернуть окно.

ОбъектВорд.Application.Visible = Истина;
ОбъектВорд.Application.WindowState = 2;
ОбъектВорд.Application.WindowState = 1;

2. Второй способ является продолжением первого, но в этом случае мы сворачиваем все активные окна и разворачиваем все имеющиеся окна MS Word.

Оболочка = Новый COMОбъект("Shell.Application");
Оболочка.MinimizeAll();
ОбъектВорд.Visible = -1;
Окна = Документ.Windows;
Для Сч = 1 По Окна.Count Цикл
    Окно = Окна.Item(Сч);
    Окно.WindowState = 1;
КонецЦикла;
ОбъектВорд.Activate();
6 Knowledge
 
17.08.14
21:39
(5) да именно там я это и нашел