M
Manticor
Доброго времени суток. Нужно при выгрузке табличного документа в Excel средтсвами openOffice убрать группировки строк.
Код такой:
В самом докумете опен офиса сделал макрос, который при скрытии группировки выдает такой код:
Также на данном форуме наткнулся на тему, где делали копирование и выделение как то подобно:
link removed
Помогите плиз понять - что нужно добавить в коде в 1с, чтобы группировки убирались? Пробовал так:
dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper"); //компанента для копирования
dispatcher.executeDispatch(Document.CurrentController.Frame, ".uno:Ungroup", "", 0, Парам);//разгруппировать
//Сохранение документа
Document.unlockControllers();
Document.removeActionLock();
Ничего не меняется.
Код такой:
Код:
&НаСервере
Процедура УстановитьПараметрыСтраницы(ИмяВременногоФайла, ТабДокумент)
Попытка
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Исключение
Сообщить("Ошибка при связи с сервис менеджером (com.sun.star.ServiceManager)." +
+ Символы.ПС + ОписаниеОшибки());
Возврат;
КонецПопытки;
Попытка
Desktop = ServiceManager.CreateInstance("com.sun.star.frame.Desktop");
Исключение
Сообщить("Ошибка при запуске сервиса Desktop (com.sun.star.frame.Desktop).'" +
+ Символы.ПС + ОписаниеОшибки());
Возврат;
КонецПопытки;
#Если ВебКлиент Тогда
scr = Новый COMОбъект("MSScriptControl.ScriptControl");
scr.language = "javascript";
scr.eval("Massiv=new Array()");
scr.AddObject("ServiceManager",ServiceManager);
scr.eval("Massiv[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Massiv[0].Name='Hidden'");
scr.eval("Massiv[0].Value=true");
Парам = scr.eval("Massiv");
#Иначе
Парам = Новый COMSafeArray("VT_DISPATCH", 1);
#КонецЕсли
#Если Не ВебКлиент Тогда
Парам.SetValue(0, СвойствоЗначение(ServiceManager, "Hidden", Истина));
#КонецЕсли
Document = Desktop.LoadComponentFromURL(ПреобразоватьВURL(ИмяВременногоФайла), "_blank", 0, Парам);
#Если ВебКлиент Тогда
Document.getCurrentController().getFrame().getContainerWindow().setVisible(Ложь);
#КонецЕсли
Document.lockControllers();
Document.addActionLock();
Sheets=Document.getSheets();
Sheet=Sheets.getByIndex(0);
СтилиСтраницы =Document.StyleFamilies.getByName("PageStyles");
Для поз = 0 по СтилиСтраницы.count - 1 Цикл
МойСтиль = СтилиСтраницы.getByIndex(поз);
МойСтиль.ScaleToPagesX = 1;
//МойСтиль.PageScale = 100;
КонецЦикла;
ПараметрыСтраницы=СтилиСтраницы.getByName(Sheet.PageStyle);
//Установка полей
ПараметрыСтраницы.LeftMargin = ТабДокумент.ПолеСлева * 100;
ПараметрыСтраницы.RightMargin = ТабДокумент.ПолеСправа * 100;
ПараметрыСтраницы.TopMargin = ТабДокумент.ПолеСверху * 100;
ПараметрыСтраницы.BottomMargin = ТабДокумент.ПолеСнизу * 100;
//Установка ориентации
Если ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда
ПараметрыСтраницы.IsLandscape = Истина;
ПараметрыСтраницы.Width = 29700;
ПараметрыСтраницы.Height = 21000;
Иначе
ПараметрыСтраницы.IsLandscape = Ложь;
ПараметрыСтраницы.Width = 21000;
ПараметрыСтраницы.Height = 29700;
КонецЕсли;
//Установка масштаба печати
//Если ТабДокумент.МасштабПечати <> Неопределено Тогда
// ПараметрыСтраницы.PageScale = ТабДокумент.МасштабПечати;
//КонецЕсли;
//Сохранение документа
Document.unlockControllers();
Document.removeActionLock();
Попытка
Document.Store();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Document.Close(Истина);
//Отключаем COM - соединение
Desktop.terminate();
КонецПроцедуры
В самом докумете опен офиса сделал макрос, который при скрытии группировки выдает такой код:
Код:
sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "RowOrCol"
args1(0).Value = "R"
dispatcher.executeDispatch(document, ".uno:Ungroup", "", 0, args1())
end sub
Также на данном форуме наткнулся на тему, где делали копирование и выделение как то подобно:
Помогите плиз понять - что нужно добавить в коде в 1с, чтобы группировки убирались? Пробовал так:
dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper"); //компанента для копирования
dispatcher.executeDispatch(Document.CurrentController.Frame, ".uno:Ungroup", "", 0, Парам);//разгруппировать
//Сохранение документа
Document.unlockControllers();
Document.removeActionLock();
Ничего не меняется.