Работа с 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
А ведь у меня тоже 2007
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
надо писать &НаКлиенте. Все просто.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший