Книга знаний

1С:Предприятие

Автоматизация OpenOffice Calc на 1С

Управление OpenOffice Calc из 1С 7.7 через UNOАвтор статьи:
Последняя редакция №1 от 26.04.06
URL: http://kb.mista.ru/article.php?id=180

Ключевые слова: UNO, OpenOffice, Calc


Основная проблема при работе с 7.7 - это проблема передачи массивов через COM.
Здесь предлагается, вероятно, наилучшее решение этой проблемы.
Оно базируется на идее и коде  smаhаrbА на Нью-Территории 1С.

  scr = СоздатьОбъект("MSScriptControl.ScriptControl");
  scr.language = "javascript";
  scr.eval("Массив=new Array()");
  Массив = scr.eval("Массив");
  scr.AddCode("function SetItem(ind,val){Массив[ind]=val}");
 
  ServiceManager=СоздатьОбъект("com.sun.star.ServiceManager");
  scr.AddObject("ServiceManager",ServiceManager);
  Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
  Document = Desktop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, Массив);
  Листы = Document.getSheets();
  Лист = Листы.getByIndex(0);
  Для к = 0 По 10 Цикл
     Лист.getCellByPosition(0,к).value = к;
  КонецЦикла;
  SaveParam = scr.Eval("ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
  SaveParam.Name = "FilterName";
  SaveParam.Value = "MS Excel 97";
  scr.CodeObject.SetItem(0,SaveParam);
  Document.storeToURL("file:///c:/Test.xls",Массив);

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика