|
Не могу разобраться с функцией ConvertToUrl | ☑ | ||
---|---|---|---|---|
0
Карась
26.07.12
✎
17:09
|
Еще раз обращаюсь к Вам, с надеждой на взаимность.У меня стоит задача заполнения документа в open office из формы документа 1с. В документе есть закладки, собственно в них я и буду записывать данные. Мне удалось простучаться к Desktop,
на сайте http://www.realcoding.net/articles/avtomatizatsiya-openofficeorg-calc-pri-pomoshchi-borland-c-builder-60.html я прочитала как это сделать, но получается, что у меня случай с уже имеющимся файлом, а значит мне надо его обрабатывать через ConvertToURL, эту функцию я написала так: Функция ConvertToURL(FileName) FileName=СтрЗаменить("C:\advastmp\qqqq.odt","",""); Возврат FileName; КонецФункции В режиме отладчика система ее проходит,но на этапе Document=Desktop.LoadComponentFromURL("C:\advastmp\qqqq.odt" , "_blank", 0,НастройкиОткрытия); У меня выскакивает ошибка: "Произошла исключительная ситуация ([automation bridge] ): com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one." Как я поняла, я неправильно обработала путь к файлу в ConverToURL. Мне нужно помочь правильно заполнить функцию ConvertToURL,а в ней разобрать как правильно заполнить СтрЗаменить. Если мне надо чтобы у меня открывался файл с определенным адресом, значит мне надо указать <сроку> она у меня "C:\\dvs\\qqqq.odt" получается вроде,<ПодстрокуПоиска>-она получается пустая, потому что я ничего не задавала, а вместо <ПодстрокиЗамены> поидее тоже ничего не писать , но прочитает ли его 1с, вот в чем вопрос, подскажите мне пожалуйста. |
|||
1
le_
26.07.12
✎
17:16
|
URL файла не так задается. Открой в браузере какой-нибудь файл и посмотри адрес.
|
|||
2
le_
26.07.12
✎
17:17
|
(1) *файла с локального диска
|
|||
3
le_
26.07.12
✎
17:20
|
file:///C:/advastmp/qqqq.odt
|
|||
4
Карась
26.07.12
✎
17:29
|
А сам путь мы в "" указывает, если да, то он выдает ту же ошибку(
|
|||
5
mehfk
26.07.12
✎
17:35
|
Книга знаний: v8: Работа с Оpen Office из 1С на примере Calc |
|||
6
Карась
26.07.12
✎
17:37
|
а как система поймет что ей нужно открыть именно мой файл,если я его путь не указываю?
|
|||
7
NS
26.07.12
✎
17:38
|
(6) Ты сама у себя спрашиваешь?
|
|||
8
Карась
26.07.12
✎
17:41
|
Нет, я пока не дошла еще до такого состояния, чтобы самой с собой разговаривать
|
|||
9
mehfk
26.07.12
✎
17:42
|
из ссылки в (5)
Document = Desktop.LoadComponentFromURL(convertToURL(ФайлПрайса), "_blank", 0, Массив); |
|||
10
Карась
26.07.12
✎
17:44
|
Подождите, то есть вы хотите сказать, что вместо пути к файлу необходимо указать его имя,простите пожалуйста если совсем глупости говорю,я в мире 1с всего ничего
|
|||
11
le_
26.07.12
✎
17:49
|
||||
12
mehfk
26.07.12
✎
17:49
|
сделай так
ФайлПрайса = "C:\advastmp\qqqq.odt"; |
|||
13
Карась
26.07.12
✎
17:54
|
Через СтрЗаменить не пропускать?
|
|||
14
mehfk
26.07.12
✎
17:55
|
как в (5)
|
|||
15
Карась
26.07.12
✎
18:00
|
пока ошибку исключительной ситуации выдает, странно
|
|||
16
NS
26.07.12
✎
18:01
|
(15) сообщить(convertToURL(ФайлПрайса)), и выложить в форум.
|
|||
17
Карась
26.07.12
✎
18:06
|
А как мне теперь запись дампа отменить?
|
|||
18
Карась
26.07.12
✎
18:07
|
он вообще перестал ошибки выдавать просто их записывает
|
|||
19
Карась
26.07.12
✎
18:13
|
Аааа все отменила
|
|||
20
Карась
26.07.12
✎
18:25
|
Простите просто раньше такого не делала, поэтому меня немного в ступор это ввело
|
|||
21
Карась
26.07.12
✎
22:59
|
Пока функция converToURL у меня выглядит так
Функция ConvertToURL(FileName) FileName="file///:"+СтрЗаменить("C:/advastmp/qqqq.odt","",""); Возврат FileName; КонецФункции |
|||
22
NS
26.07.12
✎
23:29
|
Вот это бред...
|
|||
23
Карась
27.07.12
✎
09:23
|
Сама так думаю, но вот пока как ее обработать не придумала, пытаюсь сделать как в
функция convertToURL(FileName) __ = стрзаменить(FileName," ","%20" ); __ = стрзаменить(__,"\","/" ); возврат "file:/" + "/localhost/"+__; Но пока не могу адаптировать под свой случай(просто с таким еще сталкиваться не приходилось) |
|||
24
Карась
27.07.12
✎
09:41
|
Вот сделала так, но опять выдает ошибку исключительности
функция convertToURL(FileName) __ = стрзаменить(FileName," ","%20" ); __ = стрзаменить(__,"\","/" ); возврат "file:/" + "/localhost/"+__; КонецФункции |
|||
25
Карась
27.07.12
✎
09:42
|
FileName определила как "C:\advastmp\qqqq.odt";
|
|||
26
Карась
27.07.12
✎
10:49
|
Все прошла добралась до закладки, спасибо огромное за помощь!!!
Вот как получилось {Процедура Печать() //Разбираюсь с Док // СМ = Новый COMОбъект("com.sun.star.ServiceManager"); ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); //ДТ = СМ.OleFunction("createInstance", "com.sun.star.frame.Desktop"); //Desktop = ServiceManager.OleFunction("createInstance","com.sun.star.frame.Desktop"); Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop"); //Док = ДТ.OleFunction("LoadComponentFromURL", "C:\\advastmp\\qqqq.odt", "_blank", 0 ); //Док = Desktop.createInstance("LoadComponentFromURL", "C:\\advastmp\\qqqq.odt", "_blank", 0 ); //Док=Desktop.LoadComponentFromURL("C:\\advastmp\\qqqq.odt", "_blank", 0,НастройкиОткрытия); НастройкиОткрытия = Новый COMSafeArray("VT_VARIANT", 1); PropertyValue = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); PropertyValue.Name = "Hidden"; PropertyValue.Value = Истина; НастройкиОткрытия.SetValue(0, PropertyValue); //ВременныйФайлXLS_какУРЛ = "file:///" + СтрЗаменить(ВременныйФайлXLS_какУРЛ, "\", "C:\\advastmp\\qqqq.odt"); // приводим путь к файлу из виндового формата в опен офисный //URL = ServiceManager.ConvertToURL(СтрЗаменить("","","C:\\advastmp\\qqqq.odt")); ФайлПрайса="C:/advastmp/qqqq.odt"; URL = ConvertToURL(ФайлПрайса); //Document=Desktop.LoadComponentFromURL("private:factory/swriter" , "_blank", 0,НастройкиОткрытия); Document=Desktop.LoadComponentFromURL(URL , "_blank", 0,НастройкиОткрытия); Закладки=Document.getBookmarks(); Попытка Для ПеременнаяСчетчик=0 По 1 Цикл Закладка=Закладки.getByName("bm1"); КонецЦикла; Исключение Сообщить("Фигня какая то с закладкой """+"Закладка"+"""!!!"); Возврат; КонецПопытки; Якорь=Закладка.getAnchor(); //Курсор.gotoRange(Якорь, 0); //Текст.insertString(Курсор, "Тут была закладка """+"Закладка"+"""", 0 ); КонецПроцедуры //Функция ConvertToURL(FileName) // //Не правильно определен путь к файлу, надо искать определение пути к файлу в unix // //FileName="file///:"+СтрЗаменить("C:/advastmp/qqqq.odt","",""); //Возврат FileName; функция convertToURL(FileName) __ = стрзаменить(FileName," ","%20" ); __ = стрзаменить(__,"\","/" ); возврат "file:/" + "/localhost/"+__; КонецФункции} |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |