Ошибка при вызове метода контекста loadcomponentfromurl

Ошибка при обнаружении метода

Я
   Карась

25.07.12 — 11:37

Добрый день! Заранее прошу прощения за возможно детские вопросы.

У меня стоит задача заполнения документа в open office из формы документа 1с. Я создала кнопку «Печать», после чего начала описывать процедуру.

ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);

   
Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);

   
Док = Desktop.OleFunction(«LoadComponentFromURL», «C:\…», 0 );

На этом участке кода у меня система выдает ошибку:

«Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);»

В режиме отладки проверяла ServiceManager заполняется, а вот Desktop остается неопределенным. Пыталась исправить ошибку, но безуспешно. Надеюсь на Вашу помощь.Заранее спасибо!

   vicof

1 — 25.07.12 — 11:38

Без фотки топлесс такие вопросы не решить.

   Карась

2 — 25.07.12 — 11:38

Ой ошибку не дописала, вот она:»Метод объекта не обнаружен (OleFunction)

   Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);»

   pumbaEO

3 — 25.07.12 — 11:41

фотка уже есть?

   sash-ml

4 — 25.07.12 — 12:57

(2) ничего не выйдет, 1с такое не умеет,

   EasyRider

5 — 25.07.12 — 13:10

А откуда известно,что у ServiceManager есть именно такой метод как OleFunction()?

   ЧеловекДуши

6 — 25.07.12 — 13:24

Щас, автор выдаст — «Сама я не по 1С, да и не программист вообще, даже не программистка. А всего лишь системный администратор» :)

…Без фото, солнечный офис не будет работать…

   Карась

7 — 25.07.12 — 13:33

EasyRider вот здесь вроде вычитала.

http://www.ishodniki.ru/art/art_progr/builder/236.html

А сама я начинающий программист, поэтому не пугайте пожалуйста)

   Amra

8 — 25.07.12 — 13:35

(7) Никто не пугает, но без фото не взлетит)

   Карась

9 — 25.07.12 — 13:38

Фото пока сделать не могу, не в офисе пока)

   EasyRider

10 — 25.07.12 — 13:40

(7)в ссылке написано «OpenOffice.org базируется на компонентной модели UNO»,а не на сом!Поэтому подозреваю,что после строк  ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»); вы получаете в переменной ServiceManager не совсем то,что хотите.

   Карась

11 — 25.07.12 — 13:43

То есть ошибка получается в

ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);

Неправильно определила ServiceManager?

   Карась

12 — 25.07.12 — 13:43

точнее объект

   EasyRider

13 — 25.07.12 — 13:47

думаю да

   EasyRider

14 — 25.07.12 — 13:48

а теперь фото в студию!!!

   Карась

15 — 25.07.12 — 13:50

Глупый вопрос, знаю, фото на каком моменте программы нужно(еще раз повторюсь, я еще маленький программист))

   sash-ml

16 — 25.07.12 — 13:50

Desktop = ServiceManager.createInstance(«com.sun.star.frame.Desktop»); а если так?

   Карась

17 — 25.07.12 — 13:53

Оооо, ура теперь надо следующую строчку исправлять, там та же ошибка, но попробую пока сама))

   pumbaEO

18 — 25.07.12 — 13:53

не верю, что вконтакте нету фото или где-то еще.

(16) так не честно.

   EasyRider

19 — 25.07.12 — 13:54

(15)фото нужно на моменте себя перед фотоаппаратом

   Карась

20 — 25.07.12 — 13:57

Да будет  фото,я сейчас не за своим компьютером,вечером выложу)

   Карась

21 — 25.07.12 — 13:58

   pumbaEO

22 — 25.07.12 — 14:07

Конфигурация Библиотека стандартных подсистем

ОбщийМодуль.УправлениеПечатьюOOWriterКлиент — там найдешь многие ответы на свои вопросы.

   SherifSP

23 — 25.07.12 — 14:08

(1) +++

   SherifSP

24 — 25.07.12 — 14:11

(21)Как для программиста очень даже ничего

   Карась

25 — 25.07.12 — 14:16

Спасибо)

   Карась

26 — 25.07.12 — 15:03

Проверила, действительно неправильно определила переменную док,переписала.

Док=Desktop.LoadComponentFromURL(«C:\dvstmp\qqqq.odt», «_blank», 0,Параметры);

Но теперь он пишет:

«{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(420)}: Ошибка при вызове метода контекста (LoadComponentFromURL)

     Док=Desktop.LoadComponentFromURL(«C:\advastmp\qqqq.odt», «_blank», 0,Параметры);

по причине:

Произошла исключительная ситуация ([automation bridge] ): [automation bridge] UnoConversionUtilities<T>::dispatchExObject2Sequence

Conversion of dispatch object to Sequence failed!

Произошла исключительная ситуация ([automation bridge] ): [automation bridge] UnoConversionUtilities<T>::dispatchExObject2Sequence

Conversion of dispatch object to Sequence failed!»

и вот это я уже, честно говоря в ступоре, сначала я не указывала параметры, и он жаловался на не совпадение типов, пока пытаюсь в режиме отладки, но безуспешно…

   Карась

27 — 25.07.12 — 17:13

Посидела еще немного, посмотрела, в моем случае я в переменную FilePath передаю ссылку на уже существующий файл,то есть мне надо будет обрабатывать ее с помощью функции ConvertToUrl, но что-то мне подсказывает что я ушла далеко в сторону, плюс еще я не стала передавать вид массива, опять же не уверена, что это правильно.

   dangerouscoder

28 — 25.07.12 — 17:22

   Карась

29 — 25.07.12 — 21:37

Спасибо большое, буду пробовать)

   Карась

30 — 25.07.12 — 21:42

Фотографию, как обещала, загрузила)

   Карась

31 — 26.07.12 — 09:48

С этим вариантом пока тоже исключительная ошибка, я немного не пойму похоже дело в указании массива, я его не использую,но как поняла, что без этого никак…

   Карась

32 — 26.07.12 — 10:36

Я попыталась сделать кусок кода как в этой ссылке, но у меня пока не работает

ServiceManager = Новый COMОбъект(«com.sun.star.ServiceManager»);

   
Desktop = ServiceManager.createInstance(«com.sun.star.frame.Desktop»);

   
НастройкиОткрытия = Новый COMSafeArray(«VT_VARIANT», 1);

PropertyValue = ServiceManager.Bridge_GetStruct(«com.sun.star.beans.PropertyValue»);

   PropertyValue.Name = «Hidden»;

   PropertyValue.Value = Истина;

   НастройкиОткрытия.SetValue(0, PropertyValue);

   ВременныйФайлXLS_какУРЛ = // «file:///» +  СтрЗаменить(«C:\dvstmp\qqqq.odt», «», «/»); // приводим путь к файлу из виндового формата в опен офисный

Document=Desktop.LoadComponentFromURL( ВременныйФайлXLS_какУРЛ, «_blank», 0,НастройкиОткрытия);

На месте определения Document он выдает ошибку:

«{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(434)}: Ошибка при вызове метода контекста (LoadComponentFromURL)

     Document=Desktop.LoadComponentFromURL( ВременныйФайлXLS_какУРЛ, «_blank», 0,НастройкиОткрытия);

по причине:

Произошла исключительная ситуация ([automation bridge] ): com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one.»

Возможно я неправильно указала URL-адрес

  

Карась

33 — 26.07.12 — 12:02

Прошла еще немного, без функции ConvertToURL работать не будет, то есть надо путь к файлу обрабатывать там, как это сделать пока не поняла, нашла, что надо использовать Стр.Заменить, опять же еще не совсем понимаю, как в данном случае ей воспользоваться, если не сложно, помогите пожалуйста.

  1. Как подключиться через COM к ОО 2.3. И какими методами там работать? У кого-нибудь есть пример?


  2. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Перем Аргументы;  // Массив аргументов для создания приложения
    
    СервисОО = Новый COMОбъект("com.sun.star.ServiceManager"); // Создаём доступ
    Десктоп = СервисОО.createInstance("com.sun.star.frame.Desktop"); // Создаём десктоп
    // Создаем документ приложения Writer
    Документ = Десктоп.LoadComponentFromURL("private:factory/swriter", "_blank", 0, Аргументы); 
    
    

    Подробно можно почитать по этой ссылке (1,5Mb), начиная с главы Введение в OpenOffice.org API, если знаком с любым яхыком программирования — будет очень просто все.

  3. Спасибо. А можно простой пример. Перебор строк и получение значений из нескольких колонок? Заранее благодарен.


  4. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Я так понимаю, разговор про Calc уже? :)
    Вот, примерно так можно:

    Листы = Документ.getSheets();
    Лист = Листы.getByIndex(0);
    Для Позиция = 0 По 10 Цикл
    Лист.getCellByPosition(0, Позиция).value = 2;
    КонецЦикла;
    
    
    

  5. minute

    Offline

    minute

    Регистрация:
    28 мар 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1

    Такой вопрос: а как получить доступ к уже открытому документу Calc?


  6. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Т.е. подключиться к процессу?
    Методологически неправильно так делать.


  7. minute

    Offline

    minute

    Регистрация:
    28 мар 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1

    Почему? В Exel’е, например, с этим вообще никаких проблем:

    ехель=СоздатьОбъект("Excel.Application");
    //взять контрагента и поместить его в поле комментарий  
    Если флНестандарт=0 Тогда
    Ячейка=ехель.Cells(10,2);
    иначе
    Ячейка=ехель.Cells(15,2);
    КонецЕсли;
    
    
    
    

    В ячейке будет содержаться текст открытого в данный момент документа Excel, с активного листа.
    А в Open Office? :unsure:


  8. Саша82

    Offline

    Саша82
    Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26

    А как можно сделать проверку орфографии в УТ для почтовых сообщений?
    Еще у меня при запуске вот такого кода:

    FileName= "file:///C:/Documents and SettingsСашаРабочий стол1.ods";	
    
    СервисОО = Новый COMОбъект("com.sun.star.ServiceManager"); 
    Десктоп = СервисОО.createInstance("com.sun.star.frame.Desktop"); 
    
    :unsure: Документ = Десктоп.LoadComponentFromURL(FileName, "_blank", 0, Аргументы);
    
    Листы = Документ.getSheets();
    Лист = Листы.getByIndex(0);
    Для Позиция = 0 По 10 Цикл
    Лист.getCellByPosition(0, Позиция).value = 2;
    

    Вот в этом месте выдает вот такую ошибку:
    {Обработка.BioЗагрузкаXML.Форма.Форма1(246)}: Ошибка при вызове метода контекста (LoadComponentFromURL): Типы не совпадают (1)
    Документ = Десктоп.LoadComponentFromURL(FileName, «_blank», 0, Аргументы);

    На самом деле это написано вот так: «file:///C:/Documents and SettingsСашаРабочий стол1.ods»
    При выделение здесь в код почему то неправильно показывает.


  9. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Что-то не так с именем файла :)


  10. Саша82

    Offline

    Саша82
    Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26

    Ну я в общем то тоже так подумал. Ну что же тогда может быть?
    Там есть что то типо функций ConvertToURL и ConvertToURL.
    Еще GetPathSeparator() но я не знаю как это использовать из 1С и в обще нужно ли это?
    Потом я попробовал использовать такой путь «file:///C:/1.ods» но это не помогло.
    Что в обще такое private:factory/scalc?


  11. Саша82

    Offline

    Саша82
    Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26

    Как сделать Нужно сделать массив аргументов для создания приложения? Вот так не получается:

    СервисОО = Новый COMОбъект("com.sun.star.ServiceManager"); 
    Десктоп = СервисОО.createInstance("com.sun.star.frame.Desktop"); 
    a=  СервисОО.createInstance("com.sun.star.beans.PropertyValue");
    Документ=Десктоп.LoadComponentFromURL("file:///c:/1.ods","_blank",0, a);
    

    Вот в этих: http://community.i-rs.ru/index.php/topic,9…2.html#msg59152 http://community.i-rs.ru/index.php?topic=8…w;topicseen#new
    темах написано что его можно создать с помощью MSScriptControl.


  12. Саша82

    Offline

    Саша82
    Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26

    Можно этот массив создать с помощью 1С?
    Может можно создать проверку орфографии с помощью самой 1С? В ней ведь есть вроде база слов?


  13. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    :unsure:
    Я не успеваю за тобой, автор :)


  14. nomad_irk

    Online

    nomad_irk
    Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.675
    Симпатии:
    1.011
    Баллы:
    204

    Подниму тему.

    интересует каким образом запустить Сalc невидимым?
    каким образом добавить «hidden» True в массив аргументов запуска?

    Scr = Новый COMОбъект(«MSScriptControl.ScriptControl»);
    Scr.language = «javascript»;
    Scr.eval(«Arr = new Array()»);
    Scr.AddObject(«ServiceManager», СервисОО);
    Array = Scr.eval(«Arr»);

    Array[0].Name = «Hidden»;
    Array[0].Value = Истина;

    не робит

Похожие темы

  1. Azgerd
    Ответов:
    0
    Просмотров:
    3.682


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3


Description


Shestakov Dmitriy



2012-02-27 17:36:31 MSK

1с 8.2 (8.2.14.533)
OpenOffice.org 3.3 

Конфигурация значения не имеет, думаю, что и версия платформы роли не играет.

Нужно установить OpenOffice в WINE@.

Обработка находится тут: /var/ftp/pvt/Windows/Testing/RT/23134.

Способ воспроизведения:
1. Открываете 1с в рабочем режиме.
2. Файл-Открыть и указать обработку.
3. Выбрать каталог, только не корень диска.

Все, в итоге должна создаться таблица опенофис Test_oo_via_NX.ods со
строкой "Тестовое сообщение".


Comment 1


Svetlana Zhukova



2012-02-28 12:06:51 MSK

eterhack bottle 1c82/8241
2.0.0-eter2.18/8


Установила ОО,  calc запускается,работает.
При выполнении обработки в консоли:

Usually, you can find it in the winbind package of your distribution.
fixme:file:MoveFileWithProgressW MOVEFILE_WRITE_THROUGH unimplemented
err:ole:CoInitializeEx Attempt to change threading model of this apartment from apartment threaded to multi-threaded
err:ole:marshal_object object doesn't expose interface {00000126-0000-0000-c000-000000000046}, failing with error 0x80004002
err:ole:ClientIdentity_QueryMultipleInterfaces IRemUnknown_RemQueryInterface failed with error 0x80004002
-\-\-\-повторяется
err:ole:CoGetClassObject class {6c736db1-bd94-11d0-8a23-00aa00b58e10} not registered
err:ole:CoGetClassObject no class object {6c736db1-bd94-11d0-8a23-00aa00b58e10} could be created for context 0x1


Программа зависает.


Comment 2


Svetlana Zhukova



2012-03-13 11:15:22 MSK

Установила unioffice. Теперь при выполнении обработки появляетя сообщение,что на компьютере не установлен OO, при этом открывается стартовое окно OO.


Comment 3


Константин Кондратюк



2012-04-03 18:32:24 MSK

Зачем устанавливался UniOffice, я не понял - обработка изначально работает с объектами OpenOffice.

Пересоздал бутылку:
eterhack bottle bugs/8241

1С 8.2.15.301, LibreOffice 3.5.1

На первый взгляд: запускается обработка, открывается LibreOffice, создаётся файл по указанному пути. Файл, кажется, пустой. LibreOffice, запустившись, остаётся открытым - не понятно, влияет это как-нибудь на работу обработки или нет.


Comment 4


Константин Кондратюк



2012-04-03 18:53:08 MSK

В обработке есть такой код:

ServiceManager=новый COMОбъект("com.sun.star.ServiceManager");   

Граница = ServiceManager.Bridge_GetStruct("com.sun.star.table.BorderLine");
Граница.lineDistance =  0;
Граница.innerLineWidth = 0;
Граница.outerLineWidth = 1;
	
scr = новый COMОбъект("MSScriptControl.ScriptControl");
scr.language = "javascript";
scr.eval("Массив=new Array()");
Массив = scr.eval("Массив");
scr.AddCode("function SetItem(ind,val){Массив[ind]=val}");    
scr.AddObject("ServiceManager",ServiceManager);  
		scr.eval("Массив[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Массив[0].Name='Hidden'");
scr.eval("Массив[0].Value=true");


Судя по результатам построчного выполнения, работа замораживается на строчке
Массив = scr.eval("Массив");

При этом никаких ошибок выполнение непосредственно этой инструкции в консоль не валит.


Comment 5


Константин Кондратюк



2012-04-03 19:19:13 MSK

OpenOffice вообще не имеет никакого отношения к проблеме. Проблема возникает при работе с объектом MSScriptControl из Windows Scripting. С чем связано, пока не ясно.


Comment 6


Константин Кондратюк



2012-04-03 19:22:49 MSK

Created attachment 2472 [details]
простой тест

Тестовая обработка: создаём объект, создаём массив, пытаемся переменной Массив присвоить значение - в этот момент возникает ошибка.

scr = новый COMОбъект("MSScriptControl.ScriptControl");
scr.language = "javascript";
scr.eval("Массив=new Array()");
Массив = scr.eval("Массив");
scr.AddCode("function SetItem(ind,val){Массив[ind]=val}");


Comment 7


Константин Кондратюк



2012-04-03 19:36:47 MSK

Как и ожидалось, на Windows такая обработка успешно выполняется.


Comment 8


Константин Кондратюк



2012-04-03 19:43:36 MSK

И в 1.0.12 простая обработка выполняется


Comment 10


Константин Кондратюк



2012-04-03 20:08:03 MSK

Дотестировал 1.0.12 - в дальнейшем появляется ошибка при вызове LoadComponentFromURL()

То есть в качестве временного решения не подойдёт.


Comment 11


Константин Кондратюк



2012-04-03 20:09:17 MSK

Точный текст ошибки в 1.0.12:
{Форма.Форма.Форма(61)}: Ошибка при вызове метода контекста (LoadComponentFromURL)
	Document = Desktop.LoadComponentFromURL(convertToURL(ИмяФайла), "_blank", 0, Массив);
по причине:
Типы не совпадают (1)


Comment 12


Константин Кондратюк



2012-04-04 16:41:06 MSK

В 1.0.12 тоже есть ошибка. Только при выполнении проблемной строки кода валятся fixme и, по всей видимости, возвращается ошибка. В итоге результат работы такой же, как и при Массив = 0;

Не работает ни в одной из версий, но в 2.0 ведёт к зависанию, тогда как у 1.0.12 недостаточно функционала для достижения ошибки.


Comment 13


Константин Кондратюк



2012-04-04 18:21:09 MSK

Не возвращается управление из функции ITypeInfo2_fnGetContainingTypeLib()

Зависание где-то в районе выполнения строки:
    *pIndex = This->typeinfo->typekind >> 16;
(до неё трейсится, после - нет)


Comment 14


Константин Кондратюк



2012-04-04 18:22:22 MSK

Путём экспериментов с параметрами упростил запуск обработки:
$ wine 1cv8.exe enterprise /F"D:\DemoAcc" /execute "C:\SimpleTest.epf"


Comment 15


Константин Кондратюк



2012-04-04 19:11:56 MSK

(В ответ на comment #13)
> Зависание где-то в районе выполнения строки:
>     *pIndex = This->typeinfo->typekind >> 16;

Всё потому, что приходящий pIndex == NULL.
Если игнорировать нулевой указатель, то обработка выполняется, а затем успешно выполняется и большая обработка по выгрузке в OpenOffice.

В качестве экстренной меры добавил проверку на нулевой указатель - хуже точно не будет, а 1ске (как минимум) становится лучше.


Comment 17


Константин Кондратюк



2012-04-06 11:11:22 MSK

Пришёл отзыв пользователя: в новой сборке всё работает.

Muthuvel

Posts: 12
Joined: Sat Jun 20, 2020 7:42 pm


[Solved] LoadcomponentfromURL fails to open the document

I am totally new to open office programming. I am trying to open a writer document and save it in a different name using a macro written in BASIC.

I get the error » BASIC runtime error. Object variable not set» in the following line

Code: Select all

Doc.storeAsURL(Url, FileProperties()) 

What is wrong in this code?
Full code snippet is given below

Code: Select all

sub SaveAsTest
Dim Doc 
Dim Dummy() 
Dim Url As String
Dim SearchFlags As Long
 
SearchFlags = com.sun.star.frame.FrameSearchFlag.CREATE + _
              com.sun.star.frame.FrameSearchFlag.ALL
Url = "file:///C:/temp/test.odt"
Doc = StarDesktop.loadComponentFromURL(Url, "MyFrame", SearchFlags, Dummy)
Dim FileProperties(0) As New com.sun.star.beans.PropertyValue

' ... Initialize Doc 
 
Url = "file:///c:/temp/test3.odt"
FileProperties(0).Name = "Overwrite"
FileProperties(0).Value = True
Doc.storeAsURL(Url, FileProperties()) 
end sub

Last edited by robleyd on Sun Jun 21, 2020 8:20 am, edited 3 times in total.

Reason: Add green tick

OpenOffice 4.1 on Windows 10

User avatar

Zizi64

Volunteer
Posts: 11075
Joined: Wed May 26, 2010 7:55 am
Location: Budapest, Hungary

Re: StoreURLAs error object variable not set

Post

by Zizi64 » Sat Jun 20, 2020 10:41 pm

Please upload the whole code list of the Sub.

Tibor Kovacs, Hungary; LO6.4.7-7.4.6 /Win7-10 x64Prof.
PortableApps/winPenPack: LO3.3.0-7.5.1;AOO4.1.13
Please, edit the initial post in the topic: add the word [Solved] at the beginning of the subject line — if your problem has been solved.

Muthuvel

Posts: 12
Joined: Sat Jun 20, 2020 7:42 pm

Re: StoreURLAs error object variable not set

Post

by Muthuvel » Sun Jun 21, 2020 5:09 am

@ZiZi64
Thank you for your effort to solve it.
The full list is already given in my question. I once again give below. That’s all my code.

Code: Select all

sub SaveAsTest
Dim Doc 
Dim Dummy() 
Dim Url As String
Dim SearchFlags As Long
 
SearchFlags = com.sun.star.frame.FrameSearchFlag.CREATE + _
              com.sun.star.frame.FrameSearchFlag.ALL
Url = "file:///C:/temp/test.odt"
Doc = StarDesktop.loadComponentFromURL(Url, "MyFrame", SearchFlags, Dummy)
Dim FileProperties(0) As New com.sun.star.beans.PropertyValue

' ... Initialize Doc 
 
Url = "file:///c:/temp/test3.odt"
FileProperties(0).Name = "Overwrite"
FileProperties(0).Value = True
Doc.storeAsURL(Url, FileProperties()) 
end sub

OpenOffice 4.1 on Windows 10

User avatar

Zizi64

Volunteer
Posts: 11075
Joined: Wed May 26, 2010 7:55 am
Location: Budapest, Hungary

Re: StoreURLAs error object variable not set

Post

by Zizi64 » Sun Jun 21, 2020 6:58 am

Sorry, I believed that the line

means some other commands.

I just tried your code in my AOO 4.1.5 and AOO 4.1.7 portable versions on my Windows10x64Prof. operating system, and it worked fine.

Other environment parameters:
The macro code is located in the MyMacros — Standard library — Module1 of the AOO, but not in an .odt document file.
I launched the macro by a button click from a third Writer document.
And the ‘temp’ directory is a User-created folder on my C drive, and I have (the code has) has full write rights.

What about your environment parameters?

And what a subversion of the Apache OpenOffice are you using now?
AOO 4.1.x? (Do you using same version as JeJe: AOO 4.1.2 ?)

Tibor Kovacs, Hungary; LO6.4.7-7.4.6 /Win7-10 x64Prof.
PortableApps/winPenPack: LO3.3.0-7.5.1;AOO4.1.13
Please, edit the initial post in the topic: add the word [Solved] at the beginning of the subject line — if your problem has been solved.

Muthuvel

Posts: 12
Joined: Sat Jun 20, 2020 7:42 pm

Re: StoreURLAs error object variable not set

Post

by Muthuvel » Sun Jun 21, 2020 7:42 am

@JeJe and @ZiZi64
Thank you for trying in your systems and informing me that it is working.
Otherwise i would have misled my self in a wrong direction. I found the problem. The file is password protected. The loadDocumentFromURL method has failed to open the file without supplying a password and the Doc object is not at all initialised. It is null. That is why i got the error » Object variable not set».

Initially i had passed a «Dummy» array in the line

Code: Select all

Doc = StarDesktop.loadComponentFromURL(Url, "MyFrame", SearchFlags, Dummy)

Now I have suppied the password with the FileProp array as follows

Code: Select all

FileProp(0).Name = "Password"
  FileProp(0).Value = "tmb"
Doc = StarDesktop.loadComponentFromURL(Url, "MyFrame", SearchFlags, FileProp())

Now the file is opened and saved in a different name. Your support is appreciated

OpenOffice 4.1 on Windows 10

16.05.2017

    ОкноПрограммы

Файлы для самостоятельного тестирования на 1С:Профессионал распространяются в виде xls, с включенными макросами, которые нормально работают только в MS Excel. Однако у меня нет возможности использовать MS Excel, зато есть OpenOffice, но вот незадача — не «отрабатывают» эти файлы в нем… Поэтому возникла идея создать конфу, которая бы всасывала инфу с ИТС, и складывала бы удобном для тестирования виде, ну и тестировала за одно.

Конфа пустая, чтобы её заполнить, нужно загрузить файлы билетов с диска ИТС при помощи инструмента «Загрузка вопросов из файлов тестов» (на ИТС они живут в «Database1CInfoStorage») вообще система прошерстит все *.xls файлы (а также *.cab, внутри которых могуть быть *.xls), указанной папки на предмет сходства с тестами и что нужно загрузит. Конфа в качестве тренеровки написана на управляемых формах. Для загрузки на компе-клиенте требуется установка OpenOffice (тестировалось на версии 3.3.0). Для тестирования же наличие OpenOffice не обязательно. При использовании имеется проблема с отображением картинок, которые могут обрезаться — лечится увеличением окна.

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста initialize
  • Ошибка при вызове метода контекста add неизвестная ошибка
  • Ошибка при вызове метода контекста getcorporationrequisitesbyinn
  • Ошибка при вызове метода контекста add word
  • Ошибка при вызове метода контекста execute произошла исключительная ситуация