Доброго времени суток.
Выполняю сохранение результата отчета в Excel средствами OpenOffice.
Столкнулся с проблемой установки масштаба. Согласной данной статье My Webpage
масштаб устанавливается таким образом:

// Установим масштаб, чтобы счёт помещался на одной странице вширь
    // страниц почему-то много, поэтому устанавливаем масштаб для всех
    Стили = ОпенОфис.StyleFamilies.getByName("PageStyles");
    Для поз = 0 по Стили.count - 1 Цикл
        МойСтиль = Стили.getByIndex(поз);
        МойСтиль.ScaleToPagesX = 1; // уместить на одной странице вширь
        //МойСтиль.PageScale = 50; // масштаб 50%
    КонецЦикла;

В тонком клиенте масштаб устанавливается прекрасно, но почему то под Web-ом масштаб не устанавливается вообще.

Ориентация листа устанавливается и под тонким и под толстым клиентом)

```1c
    //Установка ориентации
    Если ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда
    ПараметрыСтраницы.IsLandscape = Истина;
    ПараметрыСтраницы.Width = 29700;
    ПараметрыСтраницы.Height = 21000;
    Иначе
    ПараметрыСтраницы.IsLandscape = Ложь;
    ПараметрыСтраницы.Width = 21000;
    ПараметрыСтраницы.Height = 29700;
    КонецЕсли;

    //Установка масштаба печати
    ПараметрыСтраницы.PageScale = ТабДокумент.МасштабПечати;
```

Ошибок в вебе никаких не выдает. Куда копать подскажите плиз. Работа встала)).

PS выгрузку средствами MS Office не предлагать - есть ряд ограничений((
---
для начала перенести формирование файла с клиента на сервер
---
для начала перенести формирование файла с клиента на сервер
---
nickpugachev, формирование происходит на сервере, вот кусок кода:

```1c
    &НаСервере
    Процедура УстановитьПараметрыСтраницы(ИмяВременногоФайла, ТабДокумент)
    Попытка
    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;
    КонецЦикла;

    ПараметрыСтраницы=СтилиСтраницы.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();
    КонецПроцедуры
```

Вызов идет при нажатии на форме соответствующей кнопки, тоесть с клиента.
---
а если она на сервере, то зачем там строки

```1c
    #Если ВебКлиент Тогда
```
?

работа кода на сервере не зависит от клиента, а вот компиляция формы может и отрезать такие блоки кода
---
nickpugachev, попробовал оставить только код с директивами веб клиента. Ругается при создании COMОбъект("MSScriptControl.ScriptControl"):
Новый COMОбъект("MSScriptControl.ScriptControl") {(1)}: Ошибка при вызове конструктора (COMОбъект)
Нужна инфа каким образом установить масштаб средствами OpenOffice через web клиент.
---
Manticor, а нужно было код БЕЗ директив веб-клиента :)
---
nickpugachev, все оказалось проще на самом деле.
Пробовал и без деректив веб клиента.

 Закомментил следующие строки:

```1c
    //Установка масштаба печати
    Если ТабДокумент.МасштабПечати <> Неопределено Тогда
    ПараметрыСтраницы.PageScale = ТабДокумент.МасштабПечати;
    КонецЕсли;
```

Теперь масштаб устанавливается как надо).

(9) nickpugachev, это уже пройденный этап. Пробовали делать такое с целью выделения параметров в выгружаемом документе в Word. Так Open xml Word такие контсрукиwи огромадные делает когда жирным слово выделяешь)). А так для сборки файлика методм распаковки/упаковки вполне можно запользовать.
---
Manticor, зачем вообще изобретать велосипед? Мелкософт вполне справляется с этим
---
orsy-surgut, ограничения в (1) есть.

а так - можно обойтись и без работы с ОО/LO, 1С может работать с файлом напрямую. файлы ОО, как и файлы MSO с версии 2007 - это zip-архивы с xml файлами внутри. можно просто распаковать файлы, обработать и запаковать обратно.
---
Передавай с сервера готовый файл, и тогда нет разницы какой клиент
---
У вас линь сервер? Мне как-то нужно было обойтись без офисных пакетов, но на сервере выгружать таки в формат эксель (сервак виндовый).
Разумеется на сервер никто не хотел ставить офисный пакет, он денег стоит да и я сам для себя не оправдал его существование.
Обошелся каким-то провайдером данных (OLEDB вероятно) из "каробки" windows сервера. Ну и формат экселя мне велосипедить не пришлось.
---
fzt, сервак тоже виндовый. У нас жесткая политика безопасности и не любят платностей просто((. Вот и приходится изобретать.