Ошибка при обнаружении метода |
Я |
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 остается неопределенным. Пыталась исправить ошибку, но безуспешно. Надеюсь на Вашу помощь.Заранее спасибо!
1 — 25.07.12 — 11:38
Без фотки топлесс такие вопросы не решить.
2 — 25.07.12 — 11:38
Ой ошибку не дописала, вот она:»Метод объекта не обнаружен (OleFunction)
Desktop = ServiceManager.OleFunction(«createInstance», «com.sun.star.frame.Desktop»);»
3 — 25.07.12 — 11:41
фотка уже есть?
4 — 25.07.12 — 12:57
(2) ничего не выйдет, 1с такое не умеет,
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
А сама я начинающий программист, поэтому не пугайте пожалуйста)
8 — 25.07.12 — 13:35
(7) Никто не пугает, но без фото не взлетит)
9 — 25.07.12 — 13:38
Фото пока сделать не могу, не в офисе пока)
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
точнее объект
13 — 25.07.12 — 13:47
думаю да
14 — 25.07.12 — 13:48
а теперь фото в студию!!!
15 — 25.07.12 — 13:50
Глупый вопрос, знаю, фото на каком моменте программы нужно(еще раз повторюсь, я еще маленький программист))
16 — 25.07.12 — 13:50
Desktop = ServiceManager.createInstance(«com.sun.star.frame.Desktop»); а если так?
17 — 25.07.12 — 13:53
Оооо, ура теперь надо следующую строчку исправлять, там та же ошибка, но попробую пока сама))
18 — 25.07.12 — 13:53
не верю, что вконтакте нету фото или где-то еще.
(16) так не честно.
19 — 25.07.12 — 13:54
(15)фото нужно на моменте себя перед фотоаппаратом
20 — 25.07.12 — 13:57
Да будет фото,я сейчас не за своим компьютером,вечером выложу)
21 — 25.07.12 — 13:58
22 — 25.07.12 — 14:07
Конфигурация Библиотека стандартных подсистем
ОбщийМодуль.УправлениеПечатьюOOWriterКлиент — там найдешь многие ответы на свои вопросы.
23 — 25.07.12 — 14:08
(1) +++
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, но что-то мне подсказывает что я ушла далеко в сторону, плюс еще я не стала передавать вид массива, опять же не уверена, что это правильно.
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 работать не будет, то есть надо путь к файлу обрабатывать там, как это сделать пока не поняла, нашла, что надо использовать Стр.Заменить, опять же еще не совсем понимаю, как в данном случае ей воспользоваться, если не сложно, помогите пожалуйста.
-
Как подключиться через COM к ОО 2.3. И какими методами там работать? У кого-нибудь есть пример?
-
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, если знаком с любым яхыком программирования — будет очень просто все.
-
Спасибо. А можно простой пример. Перебор строк и получение значений из нескольких колонок? Заранее благодарен.
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Я так понимаю, разговор про Calc уже?
Вот, примерно так можно:Листы = Документ.getSheets(); Лист = Листы.getByIndex(0); Для Позиция = 0 По 10 Цикл Лист.getCellByPosition(0, Позиция).value = 2; КонецЦикла;
-
Offline
minute
- Регистрация:
- 28 мар 2007
- Сообщения:
- 13
- Симпатии:
- 0
- Баллы:
- 1
Такой вопрос: а как получить доступ к уже открытому документу Calc?
-
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Т.е. подключиться к процессу?
Методологически неправильно так делать. -
Offline
minute
- Регистрация:
- 28 мар 2007
- Сообщения:
- 13
- Симпатии:
- 0
- Баллы:
- 1
Почему? В Exel’е, например, с этим вообще никаких проблем:
ехель=СоздатьОбъект("Excel.Application"); //взять контрагента и поместить его в поле комментарий Если флНестандарт=0 Тогда Ячейка=ехель.Cells(10,2); иначе Ячейка=ехель.Cells(15,2); КонецЕсли;
В ячейке будет содержаться текст открытого в данный момент документа Excel, с активного листа.
А в Open Office? :unsure: -
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»
При выделение здесь в код почему то неправильно показывает. -
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
Что-то не так с именем файла
-
Offline
Саша82
Активный ученик- Регистрация:
- 11 окт 2007
- Сообщения:
- 307
- Симпатии:
- 0
- Баллы:
- 26
Ну я в общем то тоже так подумал. Ну что же тогда может быть?
Там есть что то типо функций ConvertToURL и ConvertToURL.
Еще GetPathSeparator() но я не знаю как это использовать из 1С и в обще нужно ли это?
Потом я попробовал использовать такой путь «file:///C:/1.ods» но это не помогло.
Что в обще такое private:factory/scalc? -
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. -
Offline
Саша82
Активный ученик- Регистрация:
- 11 окт 2007
- Сообщения:
- 307
- Симпатии:
- 0
- Баллы:
- 26
Можно этот массив создать с помощью 1С?
Может можно создать проверку орфографии с помощью самой 1С? В ней ведь есть вроде база слов? -
Offline
BabySG
Администраторы
Команда форума
Администратор- Регистрация:
- 10 июн 2007
- Сообщения:
- 11.853
- Симпатии:
- 18
- Баллы:
- 29
:unsure:
Я не успеваю за тобой, автор -
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 = Истина;не робит
- Похожие темы
-
- Ответов:
- 0
- Просмотров:
- 3.682
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
-
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
-
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 не обязательно. При использовании имеется проблема с отображением картинок, которые могут обрезаться — лечится увеличением окна.