|   |   | 
| 
 | Можно ли как-то встроить LibreOffice на управляемую форму в поле HTML-документа? | ☑ | ||
|---|---|---|---|---|
| 0
    
        _stay true_ 04.08.16✎ 09:21 | 
        День добрый!
 Задача: вывести в тонком клиенте на управляемую форму таблицу EXCEL для отображения. Перечитал кучу статей, тем и мануалов, по Мелкомягкому экселю нашел решение: в поле html-документа на форме выводим код: "<HTML><OBJECT id = ExcelLook classid=CLSID:00024500-0000-0000-C000-000000000046 width=""100%"" height=""100%"">" А после, в процедурке "подгрузки" на клиенте файла делаем следующее: ЭлементВнКомп = Элементы.Эксель.Документ.getElementById("ExcelLook"); ЭлементВнКомп.Src = ПутьКФайлу; Вопрос: может, кто проделывал что-то подобное с LibreOffice? Если да - поделитесь кусочком своей безграничной мудрости:) Заранее спасибо! | |||
| 1
    
        Cyberhawk 04.08.16✎ 09:23 | 
        Встрой лучше туда Windows     | |||
| 2
    
        _stay true_ 04.08.16✎ 09:23 | 
        (1) Внук Петросяна, не меньше:)     | |||
| 3
    
        Kandellaster 04.08.16✎ 09:24 | 
        если у либры есть ActiveX то тогда можно влепить туда     | |||
| 4
    
        _stay true_ 04.08.16✎ 09:25 | 
        (3) Вот в этом и вопрос: как))) Инфы нигде не нарыл, думал, может у кого опыт есть     | |||
| 5
    
        DrZombi гуру 04.08.16✎ 09:26 | 
        (0) Элемент по "getElementById" может появиться не сразу. У меня бывало, что спустя пару секунд.
 Смотря как быстро прогрузится страница | |||
| 6
    
        Kandellaster 04.08.16✎ 09:27 | 
        (4) тот же способ только CLSID надо узнать при условии что у либры таки есть активХ     | |||
| 7
    
        _stay true_ 04.08.16✎ 09:32 | 
        (5) Засунул в обработчик ожидания с задержкой 5 секунд - пока всё работает. 
 У Либры есть ActiveX, https://help.libreoffice.org/Common/ActiveX_Control_to_Display_Documents_in_Internet_Explorer/ru Вот как его только прикрутить к 1С))) | |||
| 8
    
        sikuda 04.08.16✎ 09:43 | 
        Сам немного этим баловался, но не критично
 http://joliclic.free.fr/html/object-tag/en/object-application.html http://catalog.mista.ru/public/235751/ | |||
| 9
    
        _stay true_ 04.08.16✎ 09:49 | 
        (8) в href и дата vj;yj засунуть что-то вроде file//ПутьКФайлу?
 <object type="application/vnd.ms-excel" data="data/test.xls" width="300" height="200"> alt : <a href="data/test.xls">test.xls</a> </object> ? | |||
| 10
    
        _stay true_ 04.08.16✎ 10:19 | 
        Ап)))     | |||
| 11
    
        _stay true_ 04.08.16✎ 10:58 | 
        В общем, забил я на эту хрень, для просто просмотра проще xls в html программно по комке перегонять. Есть какой пример взаимодействия с LibreOffice по ком? Подключение, открытие файла, сохранение в html?     | |||
| 12
    
        Garykom гуру 04.08.16✎ 11:25 | 
        (11) У тя в поле html документа js работает?     | |||
| 13
    
        Garykom гуру 04.08.16✎ 11:31 | 
        (12)+ Если работает и хорошо то https://github.com/SheetJS/js-xlsx и делай что хочешь с XLS/XLSX/ODT хочешь выводи, хочешь свой "процессор таблиц" пиши ))     | |||
| 14
    
        _stay true_ 04.08.16✎ 16:57 | 
        Таки почти разобрался с этим делом, конвертацией XLS в HTML с помощью LibreOffice. Остался последний штришок... Вот процедура:
 // Сравнивает 2 файла (txt doc doc odt) с помощью MS Office или OpenOffice Процедура СравнитьФайлы(ПутьКФайлу) Экспорт Попытка // Открыть OpenOffice ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); Reflection = ServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); Dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper"); // Открыть документ OpenOffice Args = Новый COMSafeArray("VT_DISPATCH", 1); OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(ПутьКФайлу), "_blank", 0, Args); frame = Desktop.getCurrentFrame(); НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "FilterName"; PropertyValue.Value = "calc_html_Export"; НастройкиСохранения.SetValue(0, PropertyValue); ПутьКHTML = ПреобразоватьВURL("D:\test.html"); OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); // сохранили HTML файл OOДокумент.close(-1); OOДокумент = Неопределено; Исключение Инфо = ИнформацияОбОшибке(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ПодробноеПредставлениеОшибки(Инфо)); КонецПопытки; КонецПроцедуры &НаКлиенте // Функция преобразует Windows имя файла в URL OpenOffice Функция ПреобразоватьВURL(ИмяФайла) Возврат "file:///" + СтрЗаменить(ИмяФайла, "\", "/"); КонецФункции И вот на строчке // Сравнивает 2 файла (txt doc doc odt) с помощью MS Office или OpenOffice Процедура СравнитьФайлы(ПутьКФайлу) Экспорт Попытка // Открыть OpenOffice ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); Reflection = ServiceManager.createInstance("com.sun.star.reflection.CoreReflection"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); Dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper"); // Открыть документ OpenOffice Args = Новый COMSafeArray("VT_DISPATCH", 1); OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(ПутьКФайлу), "_blank", 0, Args); frame = Desktop.getCurrentFrame(); НастройкиСохранения = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "FilterName"; PropertyValue.Value = "calc_html_Export"; НастройкиСохранения.SetValue(0, PropertyValue); ПутьКHTML = ПреобразоватьВURL("D:\test.html"); OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); // сохранили PDF файл OOДокумент.close(-1); OOДокумент = Неопределено; Исключение Инфо = ИнформацияОбОшибке(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ПодробноеПредставлениеОшибки(Инфо)); КонецПопытки; КонецПроцедуры &НаКлиенте // Функция преобразует Windows имя файла в URL OpenOffice Функция ПреобразоватьВURL(ИмяФайла) Возврат "file:///" + СтрЗаменить(ИмяФайла, "\", "/"); КонецФункции И на строке OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); // сохранили HTML файл Получаю такую ошибку: {ВнешняяОбработка.ТестЗапускаПриложений.Форма.Форма.Форма(40)}: Ошибка при вызове метода контекста (storeToURL) OOДокумент.storeToURL(ПутьКHTML, НастройкиСохранения); по причине: Произошла исключительная ситуация ([automation bridge] ): com.sun.star.io.IOException: SfxBaseModel::impl_store <file:///D:/test.html> failed: 0x81a Кто сталкивался - помогите)) | |||
| 15
    
        _stay true_ 04.08.16✎ 17:04 | 
        Извиняюсь, случайно задублировал код((     | |||
| 16
    
        _stay true_ 04.08.16✎ 17:13 | 
        Я так понял, неправильно значение фильтра указал. пробовал разные комбинации с html, но нигде не нашёл инфы. В PDF есть экспорт, в html - НЕТ((     | |||
| 17
    
        Cyberhawk 04.08.16✎ 19:15 | 
        (2) Прошу меня извинить, хотел разрядить обстановку в этой атмосфере безысходности и тщетности найти работющее решение     | |||
| 18
    
        Garykom гуру 04.08.16✎ 19:24 | 
        Меня искренне радует желания проводить операции на гландах через разные проходы в т.ч. задний.
 Точнее тренировки в этом, но почему не удовлетворяет обычный ТабДок? Или отдельная работа в Екселя/ЛибреОфиса/ГуглеОфиса? Зачем это засовывать в тонкого клиента внутрь 1С? | |||
| 19
    
        Йохохо 04.08.16✎ 19:31 | 
        (16) https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options
 HTML (StarCalc) ? | |||
| 20
    
        _stay true_ 05.08.16✎ 13:22 | 
        (19) Не заработало(((
 Проблема решена установкой плагина в GoogleChrome и двумя строчками кода. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |