|
Ошибка в определении переменной | ☑ | ||
---|---|---|---|---|
0
Карась
26.07.12
✎
13:22
|
Добрый день! Я решаю задачу заполнения документа OO из формы документа 1с.Процедуру заполнения я начала описывать:
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); URL = ConvertToURL(ИмяФайла); Document=Desktop.LoadComponentFromURL(URL,"_blank",0,НастройкиОткрытия); Закладки=Document.getBookmarks(); Попытка Закладка=Закладки.getByName("Закладка"); Исключение Сообщить("Фигня какая то с закладкой """+"Закладка"+"""!!!"); Возврат; КонецПопытки; Якорь=Закладка.getAnchor(); //Курсор.gotoRange(Якорь, 0); //Текст.insertString(Курсор, "Тут была закладка """+"Закладка"+"""", 0 ); КонецПроцедуры функция ConvertToURL(ИмяФайла) Возврат ИмяФайла="C:\\advastmp\\qqqq.odt"+ СтрЗаменить(ИмяФайла,"\","/"); Конецфункции При проверке синтаксиса система выдает ошибку, пишет, что переменная ИмяФайла не определена, хотя например вот здесь http://help1c.com/faq/view/587.html ее не определяли. Если не сложно, помогите пожалуйста. |
|||
1
ДенисЧ
26.07.12
✎
13:23
|
функция ConvertToURL(ИмяФайла)
Возврат ИмяФайла="C:\\advastmp\\qqqq.odt"+ СтрЗаменить(ИмяФайла,"\","/"); Конецфункции Что это было, Бэрримор????? |
|||
2
Карась
26.07.12
✎
13:29
|
На самом деле писала как здесь, просто путь к шаблону у меня "C:\\dvstmp\\qqqq.odt", я как поняла если сразу его описать в document, работать не будет его надо пропустить через функцию ConvertToUrl, а вот как это сделать я не знаю, я просто совсем недавно изучаю программирование в 1с, поэтому могу допускать детские ошибки
|
|||
3
EasyRider
26.07.12
✎
13:30
|
(0)Може там это было реквизитом?Определи и все дела.
|
|||
4
Карась
26.07.12
✎
13:30
|
ссылку не вставила вот откуда брала пример
http://help1c.com/faq/view/587.html |
|||
5
Карась
26.07.12
✎
13:30
|
Имя файла было реквизитом?
|
|||
6
EasyRider
26.07.12
✎
13:31
|
да.Строковый реквизит ИмяФайла в обработке
|
|||
7
Карась
26.07.12
✎
13:31
|
я его просто как переменную завела
|
|||
8
Карась
26.07.12
✎
13:31
|
то есть попробовать название переменной поменять?
|
|||
9
EasyRider
26.07.12
✎
13:32
|
(7)если ругается,что переменная не определна,значит не завела
|
|||
10
Карась
26.07.12
✎
13:34
|
да я просто не понимаю, где мне ее заводить, я же ее получаю в другой функции, тоже самое в http://help1c.com/faq/view/587.html , там ничего не определяют
|
|||
11
Карась
26.07.12
✎
13:36
|
Изначально ошибка шла из строки
Document=Desktop.LoadComponentFromURL("C:\\dvs\\qqqq.odt","_blank",0,НастройкиОткрытия); |
|||
12
EasyRider
26.07.12
✎
13:38
|
URL = ConvertToURL(ИмяФайла); и что в этом месте лежит в ИмяФайла?
|
|||
13
Карась
26.07.12
✎
13:38
|
Выдавал ошибку
"{Справочник.ДоговорыКонтрагентов.Форма.ФормаЭлемента.Форма(434)}: Ошибка при вызове метода контекста (LoadComponentFromURL) Document=Desktop.LoadComponentFromURL( ВременныйФайлXLS_какУРЛ, "_blank", 0,НастройкиОткрытия); по причине: Произошла исключительная ситуация ([automation bridge] ): com.sun.star.lang.IllegalArgumentException: URL seems to be an unsupported one." Вот я и подумала, что не обработала путь к файлу через ConvertToURL |
|||
14
EasyRider
26.07.12
✎
13:38
|
перед вызовом
|
|||
15
Карась
26.07.12
✎
13:38
|
Поидее обработанный путь к файлу
|
|||
16
EasyRider
26.07.12
✎
13:39
|
ты отладчиком проверь сперва
|
|||
17
Карась
26.07.12
✎
13:41
|
Я даже в отладчик не могу пока запустить так как он жалуется на то, что не определена переменная, а если по старому делать, то в отладчике переменную document он вообще определить не может,жалуясь на исключительную ситуацию.
|
|||
18
EasyRider
26.07.12
✎
13:43
|
(17)ну сделай
ИмяФайла = ""; URL = ConvertToURL(ИмяФайла); сохранить даст,но это конечно муйня. |
|||
19
Карась
26.07.12
✎
14:51
|
Мне предложили такой вариант, создать внешнюю обработку и все отладить там.
Создала, но так как мне посоветовали еще все делать на примере ОбщийМодуль.УправлениеПечатьюOOWriterКлиент, там немного по другому, я переделала код, но получилось, что путь к документу вообще теперь нигде не указывается, и естественно обработка закладок не находит, как мне получить доступ к документу, чтобы он открывал нужный мне документ? |
|||
20
Карась
26.07.12
✎
14:53
|
Код следующий получился
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); Document=Desktop.LoadComponentFromURL("private:factory/swriter" , "_blank", 0,НастройкиОткрытия); Закладки=Document.getBookmarks(); Попытка Для ПеременнаяСчетчик=0 По 1 Цикл Закладка=Закладки.getByName("Закладка"); КонецЦикла; Исключение Сообщить("Фигня какая то с закладкой """+"Закладка"+"""!!!"); Возврат; КонецПопытки; Якорь=Закладка.getAnchor(); |
|||
21
Карась
26.07.12
✎
15:15
|
Я понимаю, что возможно задаю совсем глупые вопросы, но просто третий день сижу над этой задачей и не могу пока ее решить...
|
|||
22
Карась
26.07.12
✎
15:32
|
Еще кое что отыскала если на месте пути к файлу мы пишем "private:factory/swriter" то создается новый файл, то есть все таки мне надо писать там путь к файлу, но как мне его обработать, чтобы 1с его восприняла нормально.
|
|||
23
Карась
26.07.12
✎
16:17
|
Все я наконец то поняла с чем мне надо помочь, мне нужно помочь правильно заполнить функцию ConvertToURL,а в ней разобрать как правильно заполнить СтрЗаменить. Если мне надо чтобы у меня открывался файл с определенным адресом, значит мне надо указать <сроку> она у меня пустая получается вроде,<ПодстрокуПоиска>-она получается опять пустая, потому что я ничего не задавала, а вместо <ПодстрокиЗамены> поидее указать путь к файлу "C:\\dvs\\qqqq.odt", но прочитает ли его 1с, вот в чем вопрос, подскажите мне пожалуйста.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |