Имя: Пароль:
1C
1С v8
Word.Application избавиться от запроса на сохранение
0 OFF
 
11.12.17
09:02
Все как то работало тихо мирно, теперь при выполнении функции запрос "Сохраняемый документ содержит изменения. Продолжить сохранение?"
Функция ПолучитьРазличияТекстовВHTML(Знач Текст1, Знач Текст2) Экспорт

    Если Текст1 = Текст2 Тогда
        Возврат "";
    КонецЕсли;
    
    ИмяФайла1 = ПолучитьИмяВременногоФайла("html");
    Док1 = Новый ТекстовыйДокумент;
    Док1.УстановитьТекст(Текст1);
    Док1.Записать(ИмяФайла1);
    
    ИмяФайла2 = ПолучитьИмяВременногоФайла("html");
    Док2 = Новый ТекстовыйДокумент;
    Док2.УстановитьТекст(Текст2);
    Док2.Записать(ИмяФайла2);
    
    ИмяФайла3 = ПолучитьИмяВременногоФайла("html");
    
    obj = Новый COMОбъект("Word.Application");
    obj.DisplayAlerts = False;
    obj.Visible = False;
    doc1 = obj.Documents.Open(ИмяФайла1, , False, , , , , , , , , True);
    doc2 = obj.Documents.Open(ИмяФайла2, , False, , , , , , , , , True);
    doc3 = obj.CompareDocuments(doc1, doc2,,0,0);
    doc3.Saved = True;
    doc3.SaveAs(ИмяФайла3,8);
    doc3.Close(0);
    obj.Quit();
    obj = 0;
    
    Док3 = Новый ТекстовыйДокумент;
    Док3.Прочитать(ИмяФайла3);
    
    УдалитьФайлы(ИмяФайла1);
    УдалитьФайлы(ИмяФайла2);
    УдалитьФайлы(ИмяФайла3);
    
    Возврат Док3.ПолучитьТекст();    
    
КонецФункции
Как лечить?
1 НЕА123
 
11.12.17
09:25
я бы попробовал
doc1.Saved = True;
doc2.Saved = True;
2 OFF
 
11.12.17
09:31
(1) не помогает. Запрос выходит на строке "doc3.SaveAs"
3 Сияющий в темноте
 
11.12.17
09:42
а зачем писать Saved=True,если мы потом все равно сохраняем?
4 big
 
11.12.17
09:42
Close() надо вызвать с параметром "сохранить без предупреждения"

http://www.comprice.ru/articles/detail.php?ID=43067
5 big
 
11.12.17
09:44
(4) +

ИМХО вот так надо

doc3.Close(-1);
6 OFF
 
11.12.17
09:52
(3) эксперимент, типа если скинуть флаг - то взлетит, не взлетело
(4) не помогает
7 OFF
 
11.12.17
11:23
С политиками могли что то намудрить? Как то работало ведь
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн