Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

19 Октябрь 2019, 10:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Код работает в LibreOffice 5 не работает в LibreOffice 6  (Прочитано 292 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dvv
Новичок
*
Offline Offline

Сообщений: 2


« Стартовое сообщение: 27 Сентябрь 2019, 17:11 »

Открываю xls файл через COM из 1C.

Один и тот же код (привожу кусок):

 Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
    Props = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Props.Name = "AsTemplate";
    Props.Value = True;
    Args = New COMSafeArray("VT_VARIANT", 2);
    Args.SetValue(0, Props);
    Props1 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
    Props1.Name = "Hidden";
    Props1.Value = True;
    Args.SetValue(1,Props1);
    Document = Desktop.LoadComponentFromURL(ConvToURL(filePath), "_blank", 0, Args);

 работает в версии 5.0.3.2 и не работает в версии 6.2.3.2, в 6 LoadComponentFromURL выдает ошибку "type detection failed"   

ConvToURL - функция преобразования имени файла к нужному для либры виду

Кто-нибудь может подсказать что не так?
Записан
mikekaganski
Мастер
*****
Online Online

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 505


« Ответ #1: 27 Сентябрь 2019, 17:15 »

ConvToURL - функция преобразования имени файла к нужному для либры виду

Есть встроенная функция для этого: ConvertToURL.

А без макроса ЛО открывает этот файл?
« Последнее редактирование: 27 Сентябрь 2019, 17:28 от mikekaganski » Записан

С уважением,
Михаил Каганский
dvv
Новичок
*
Offline Offline

Сообщений: 2


« Ответ #2: 30 Сентябрь 2019, 08:13 »

А без макроса ЛО открывает этот файл?
конечно открывает, обычный ексель
Записан
mikekaganski
Мастер
*****
Online Online

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 1 505


« Ответ #3: 30 Сентябрь 2019, 09:02 »

Только что проверил код в Basic:
Код:
Sub OpenXLS
Dim p0 As New com.sun.star.beans.PropertyValue, p1 As New com.sun.star.beans.PropertyValue, args(1), doc As Object
p0.name = "AsTemplate"
p0.Value = True
p1.name = "Hidden"
p1.Value = True
args(0) = p0
args(1) = p1
doc = StarDesktop.loadComponentFromURL(ConvertToURL("D:\Downloads\документ.xls"), "_blank", 0, args)
doc.close(True)
End Sub
Он отработал без ошибок. Если у Вас аналогичный код в 1С не работает (а приведённый Basic работает из ЛО после указания своего корректного пути к документу), можно предположить, что он некорректно настраивает окружение ЛО (так что ЛО не загружает модули). Ну, или
ConvToURL - функция преобразования имени файла к нужному для либры виду
делает что-то не так.
« Последнее редактирование: 30 Сентябрь 2019, 09:04 от mikekaganski » Записан

С уважением,
Михаил Каганский
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!