helpf.pro
Регистрация

Открыть документ Open Office Writer из 1С 77

LarisaT
23.03.2010 16:10Прочитано: 9351
Пыталась написать код из 1С77 для открытия документа Open Office Writer. Использовала предлагаемые коды для работы с Open Office Calc, приведенные в инете. Там есть строка

ServiceManager=СоздатьОбъект("com.sun.star.Service Manager");

У меня на нее выдает сообщение "Неудачная попытка создания объекта (com.sun.star.Service Manager)"

Не подскажете, почему? Что нужно доустановить в систему? Может кто выложит полный код описанной задачи.
Где можно почитать об этом вопросе подробно?

С документами из MS Word MS Excel у меня проблем не было. Там все понятно.
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
23.03.2010 17:34Ответ № 1
Нужно писать:
Код 1C v 7.x
 ServiceManager=СоздатьОбъект("com.sun.star.ServiceManager");


вот рабочие примеры: где заполняется фразой новый документ, а потом эта фраза меняется на другую:
Код 1C v 7.x
 
Перем Док; //smaharbA

Процедура Заполним()
Перем Имя,Путь;
Поиск="Съешь ещё этих мягких французских булок, да выпей чаю";
Скрипт=СоздатьОбъект("MSScriptControl.ScriptControl");
Скрипт.language="javascript";
Математика=Скрипт.eval("Math");
Массив=Скрипт.eval("Массив=new Array()");
СервисМанагер=Скрипт.eval("СервисМанагер=new ActiveXObject('com.sun.star.ServiceManager')");
Парам=Скрипт.eval("Парам=СервисМанагер.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
Парам.Name="Hidden";
Скрипт.eval("Парам.Value=false;");
Массив.push(Парам);
Десктоп = СервисМанагер.createInstance("com.sun.star.frame.Desktop");
//Док = Десктоп.LoadComponentFromURL("file:///"+СтрЗаменить(Путь+Имя,"\","/"), "_blank", 0, Массив );

Док = Десктоп.LoadComponentFromURL("private:factory/swriter", "_blank", 0, Массив );
Стр="";
Для к=1 По 100 Цикл
Стр=Стр+Поиск+РазделительСтрок;
КонецЦикла;
Док.getText().setString(Стр);
КонецПроцедуры

Процедура Заменим()
Поиск="Съешь ещё этих мягких французских булок, да выпей чаю";
Замена="Выпей вотки и закуси селеткой )";
Дескриптор=Док.createSearchDescriptor();
Дескриптор.SearchString = Поиск;
//Док.SearchWords = -1;

Дескриптор.SearchCaseSensitive = -1;
Дескриптор.SearchBackwards = -1;
Дескриптор.ReplaceString = Замена;
Док.ReplaceAll(Дескриптор);
КонецПроцедуры
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.