Имя: Пароль:
1C
1С v8
Работа с Word.Application
0 antihacker
 
06.12.16
08:54
Всем привет ! Вот в форуме нашел пример.

&НаКлиенте
Процедура ТЧДокументыДоговораВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

    ИмяФайла = ПолучитьИмяВременногоФайла(Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ИмяФайла);
    Doc = СформироватьФайл(Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ИмяФайла, Элементы.ФТЧДокументыДоговора.ТекущиеДанные.РазмерФайла,Элементы.ФТЧДокументыДоговора.ТекущиеДанные.ТипФайла);
    
    Если Doc <> Неопределено Тогда
        
        Doc.Записать(ИмяФайла);
        Word  = Новый COMОбъект("Word.Application");
        Word.Documents.Open(ИмяФайла);
        Word.Visible = Истина;
        
        ДобавитьОбработчик Word.DocumentBeforeSave, ПередСохранениемДокументаOffice;
        ДобавитьОбработчик Word.DocumentBeforeClose, ПередЗакрытиемДокументаWord2;
        ДобавитьОбработчик Word.Quit, ВыходИзWord;
        
    КонецЕсли;
    
КонецПроцедуры

//Процедуры назначаемые обработчиками
Процедура ПередЗакрытиемДокументаWord2(Документ, Отмена)
    
    сообщить("ПередЗакрытиемДокументаWord2");

    Документ.Save();
    
КонецПроцедуры

Процедура ВыходИзWord()
    
    сообщить("ВыходИзWord");

    ШаблонДоговора = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла));
    
КонецПроцедуры

Процедура ПередСохранениемДокументаOffice(Документ, СохранитьКак, Отмена)
    сообщить("ПередСохранениемДокументаOffice");
КонецПроцедуры


Но почему то не исполноються процедуры ПередСохранениемДокументаOffice и ПередЗакрытиемДокументаWord2. А ВыходИзWord исполняеться. Не знаю может имполняеться, но по крайней мере не вижу резульата оператора сообщить();
1 antihacker
 
06.12.16
09:06
2 Cool_Profi
 
06.12.16
09:34
Если Doc <> Неопределено Тогда
        
        Doc.Записать(ИмяФайла);
        Word  = Новый COMОбъект("Word.Application");
        Word.Documents.Open(ИмяФайла);
        Word.Visible = Истина;
        
        ДобавитьОбработчик Word.DocumentBeforeSave, ПередСохранениемДокументаOffice;
        ДобавитьОбработчик Word.DocumentBeforeClose, ПередЗакрытиемДокументаWord2;
        ДобавитьОбработчик Word.Quit, ВыходИзWord;
        
    КонецЕсли;


Это в 1с дословно написано? И при исполнении не выдаёт ошибок?
3 antihacker
 
06.12.16
11:54
Cool_Profi, браток с этой строкой все в порядке.

Оказываеться в УФ перед

ПередЗакрытиемДокументаWord2

надо писать &НаКлиенте. Все просто.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан