Имя: Пароль:
1C
 
Формирование ворд документа через оpenoffice
,
0 azeml
 
14.01.16
12:22
Здравствуйте! Есть такая проблема, есть много документов, которые формируются через Word (Word.Application), но сейчас это все надо перевести на openoffice .Есть, что-то подобное (Word.Application).А конкретнее мне нужно открыть документ и подставить значение (Find.Execute) и сохранить его.На Excel есть , а на Word не могу.Заранее благодарен
1 Тюря
 
14.01.16
12:29
openoffice  может открыть вордовский 97-2003  документ  без проблем
2 Тюря
 
14.01.16
12:33
и .docx без проблем
или что-то я не понял в чем проблема.
3 Тюря
 
14.01.16
12:35
Пример вывода в документ данных в openoffice

Replace.SearchString  ="{Договор}";
Replace.ReplaceString = СокрЛП(Договор.НомерДоговора);
ТекстовыйПроцессор.ReplaceAll(Replace);
4 azeml
 
14.01.16
12:37
(1) У меня есть документ в формате docx.
Надо открыть этот файл и сделать замену в нем.
Замена.Execute("Contoso", Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеКонтрагента,2);
5 azeml
 
14.01.16
12:41
Попытка
        ОбъектОО = Новый COMОбъект("com.sun.star.ServiceManager");
    Исключение
        Предупреждение("Невозможно загрузить OpenOffice.org !!!" + Символы.ПС + ОписаниеОшибки(), 10, "Ошибка");
        Возврат;
    КонецПопытки;
    ИмяФайла = КаталогВременныхФайлов()+"Документы.docx";
    Макет = ПолучитьМакет("Макет");
    Макет.Записать(ИмяФайла);

Кальше нужно открыть его для изменений в 1с. Как это сделать?
6 azeml
 
14.01.16
12:52
(3) спасибо разобрался.
7 azeml
 
14.01.16
12:53
Если кому-то нужно вот код как поиск и замену сделать из openoffice


ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
    Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
    Scr = Новый COMОбъект("MSScriptControl.ScriptControl");
    Scr.Language="javascript";
    Scr.Eval("Args=new Array()");
    Args = Scr.Eval("Args");
    Scr.AddObject("ServiceManager", ServiceManager);
    
    Попытка
        FileNameSh = СокрЛП(ПутьКФайлу);
        URL = СтрЗаменить(FileNameSh," ","%20");
        URL = СтрЗаменить(URL,"\","/");
        URL ="file://localhost/" + URL;
        
        OpenOffice = Desktop.LoadComponentFromURL(URL, "_blank", 0, Args);
        
    Исключение
        Сообщить("Ошибка при попытке создать объект ", СтатусСообщения.Внимание);
        Возврат;
    КонецПопытки;
    
    Replace =OpenOffice.CreateReplaceDescriptor();
    Replace.SearchString = "[заказ]";
    Replace.ReplaceString = Заказ;
    OpenOffice.ReplaceAll(Replace);
8 Фрэнки
 
14.01.16
12:58
(7) Интересный код. Спасибо.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс