Имя: Пароль:
1C
 
ЗУП 2.5 - как сделать чтобы спрашивало "Сохранить как" при выводе в Word?
0 RomaH
 
naïve
04.02.15
10:07
Попытка
        АктивныйДокумент = ПолучитьМакет("МакетПриемник");    
    Исключение
        Сообщить(ОписаниеОшибки());
        Сообщить("Не удалось создать объект ворда");
        Возврат Неопределено;
    КонецПопытки;
    
    КомОбъект     = АктивныйДокумент.Получить();
    КомОбъект.Activate();
    КомОбъект.Application.Visible = Истина;

вроде как после этого видим не активный документ ворда
но он не спрашивает про сохранить если его закрыть - а надо что бы спрашивал

что написать?
1 RomaH
 
naïve
04.02.15
23:35
вверх
2 marvak
 
04.02.15
23:37
(0)
а есть там в КомОбъект-е флаг того что документ Ворда модифицирован?
3 marvak
 
04.02.15
23:37
может установить признак изменения документа?
4 Бертыш
 
05.02.15
03:13
Вот только-только хотел такого же плана создать тему
Я вот в коде юхзал
WordApp=Новый COMОбъект("Word.Application");
NewDoc=WordApp.Documents;
Doc=NewDoc.Add(ИмяФайла);

и у меня возникла проблема как показать юзеру документ или сразу открыть диалог печати.
Размещаю сюда. Вдруг кто-то Вам отвечая ответит и мне.
Я так макет засовывааю во временный файл, а потом с ним пытаюсь работать. Так то в  WinWord завсегда можно было подсмотреть через запись макросов как и чего делать, а сейчас талантаасы из компании майкрософт так всё запутаали что фиг доберёшься до VBA и записи макросов
5 Cube
 
05.02.15
04:47
(0) Документ.Saved = Ложь;
6 Cube
 
05.02.15
04:53
+(5) А Документ у меня добавляется так (перекладывая на твой код):

Документ = КомОбъект.Documents.Add();

Но ты, наверное, можешь поклпаться в Documents и получить первый как-то так:

Документ = КомОбъект.Documents[0];

Просто у меня код текст из макета копирует в буфер, создает новый документ Word и вставляет туда из буфера. Не помню, зачем так сделано (кажется из-за того, чтобы заголовок окна Word красивым был).
7 Cube
 
05.02.15
04:55
(4) "как показать юзеру документ"
Ответ есть в (0), добавив пару строк, можно и на втрой твой вопрос ответить одним махом:

    Если НаПринтер Тогда
        Doc.PrintOut(Истина, , , , , , , КоличествоКопий, , , , Истина);
        Doc.Close();
    Иначе
        WordApp.Visible = Истина;
        WordApp.Activate();
    КонецЕсли;
8 Бертыш
 
05.02.15
08:44
(7) Спасибо
9 RomaH
 
naïve
05.02.15
15:19
(6) нафига add?
АктивныйДокумент = ПолучитьМакет("МакетПриемник");
вроде этого достаточно
если Add - он же чистый будет - в него придется копировать

к стати вот это у меня не работает

       WordApp.Visible = Истина;
        WordApp.Activate();


визибл делает, а активировать - не активирует - так и висит в панесли задач свернутым
10 Масянька
 
05.02.15
15:21
(9) У меня активирует:
    // активируем Word
    мWord.Visible = 1;
    мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;
11 RomaH
 
naïve
05.02.15
15:30
мWord.Application.WindowState = 2;
    мWord.Application.WindowState = 1;

из-за этого?
это что за стэйт?
12 Масянька
 
05.02.15
15:35
(11) Не помню я уже. Где-то в инете нарыла. До этого было
WordApp.Visible = Истина;
WordApp.Activate(); -
не активировалось.
13 repin_mike
 
05.02.15
16:28
application.DisplayAlerts = true
14 Cube
 
06.02.15
04:28
(9) "нафига add?"
Дочитать пост до конца не судьба?
15 Бертыш
 
19.02.15
02:39
(14) Может раз уж Вы такой замечательные знаток объектной модели офиса подскажете и по Excel?
Есть такой вот примерно файлик (по ссылке скриншот)
https://yadi.sk/i/17reMROQemTzD
там организованы группы с вложениями. Я хорошо знаю как обработать линейный файл в Excel, но как выбрать всяческие свернутые группы строк и их начинку я не знаю.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс