| 
    
        
     
     | 
    
    
  | 
Ошибка в определении переменной | ☑ | ||
|---|---|---|---|---|
| 
    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с, вот в чем вопрос, подскажите мне пожалуйста.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |