Имя: Пароль:
1C
1С v8
Передать параметр в OpenOffice/LibreOffice из 1см8
0 stavr
 
05.08.14
14:17
Задача: открыть из 1с-ки с помощью OpenOffice Calc файл dbf.
Подключение  и открытие выполняется известным способом, который здесь неоднократно описывался:
Приложение = Неопределено;
МетодЗагрузки = Неопределено;
Попытка
Приложение   = Новый ComОбъект("Excel.Application");
МетодЗагрузки = "Excel";
Исключение
КонецПопытки;
            
Если НЕ ЗначениеЗаполнено(МетодЗагрузки) Тогда
Попытка
Приложение = Новый ComОбъект("com.sun.star.ServiceManager");
МетодЗагрузки = "ОО";
Исключение
Сообщить("Отсутствует приложение для загрузки файла");
КонецПопытки;
КонецЕсли;
            
Если МетодЗагрузки = "ОО" Тогда
scr  = Новый ComОбъект("MSScriptControl.ScriptControl");    
scr.language    = "javascript";
scr.eval("MassivParametrov = new Array()");
MassivParametrov = scr.eval("MassivParametrov");
scr.AddObject("OpenOffice", Приложение);
scr.eval("MassivParametrov[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("MassivParametrov[0].Name='Hidden'");
scr.eval("MassivParametrov[0].Value=true");
        
Desktop = Приложение.CreateInstance("com.sun.star.frame.Desktop");
Попытка
Doc = Desktop.LoadComponentFromURL(ConvertToURL(ИмяФайла), "_blank", 0, MassivParametrov);
исключение
//        Возврат 0;
КонецПопытки;

Но есть одна проблема. Как передать оупен офису, что файл надо открывать с кодировкой DOS866 ? Похоже надо добавить в МассивПараметров соответствующую запись. Но так как в COM соединениях не разбираюсь, может кто подскажет как?
1 stavr
 
06.08.14
06:51
up
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.