Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

V8 управляемые формы active document Проблемма

V8 управляемые формы active document Проблемма
Я
   ИУБиПовиц
 
17.01.13 - 17:04
Здравствуйте. Имеется конфигурация на управляемых формах в клиент-серверном варианте, в ней есть некий документ, из него должен открываться вордовский файл. Сделал вот как:
&НаКлиенте
Процедура ПечатьСогласования()   // Вставить содержимое обработчика.
 
    ТабДокСПарам = Новый ТабличныйДокумент;
    Списокмакетов = Новый СписокЗначений;
    СсылкаНаОбъект = Объект.Ссылка;/
    
    СтруктураДанных = ВызовОбертки();

    Макет = ПолучитьИзВременногоХранилища(СтруктураДанных);    
    ОбъектВорд = Макет.Получить();

    
   // Документ из объекта и его активация
 
    
    Документ = ОбъектВорд.Application.Documents(1);
    Документ.Activate();
    
   //тут различный код, пока его не трогаю
 
    
   // Вывод документа
 
    
    ОбъектВорд.Application.Visible = Истина;
    ОбъектВорд.Activate(); 

КонецПроцедуры

&НаСервере
Функция  ПолучитьСтруктуруДанных() экспорт
    
    ФайлВорд = ПолучитьМакет("МакетДв");  
    АдресФайлаЕксельВХранилище = ПоместитьВоВременноеХранилище(ФайлВорд);
    
    Возврат АдресФайлаЕксельВХранилище; 
    
КонецФункции


Говорит что метод не доступен "получить". ОбъектВорд = Макет.Получить(); ну сдругой стороны это ж не макет, а двоичные данные, с чего бы там чему то быть.. как можно реализовать открытие документа ворд из двоичных данных БЕЗ созданий временных файлов, потому что непонятно какоё это пользователь, и какие папки ему будет доступны..!
 
 
   Лефмихалыч
 
1 - 17.01.13 - 17:13
(0) без временных файлов - ни как. А любому пользователю доступен тэмп
   ИУБиПовиц
 
2 - 17.01.13 - 18:04
ну хорошо, с временными так с временными. только один фиг не получается. Выдает вот это Отсутствует отображение для типа 'COMОбъект'.
труктураДанных = ВызовОбертки();

    ФайлВорд = ПолучитьИзВременногоХранилища(СтруктураДанных);
    ПутьКФайлуНаКлиенте = "temp.doc";    
        
    Попытка
        ОбъектВорд = Новый COMОбъект("WORD.Application");   
    Исключение
        Сообщить("Установи WORD..");
        Возврат;
    КонецПопытки;
    
    ПолноеНаименование = КаталогВременныхФайлов() + ПутьКФайлуНаКлиенте;
    
        
    Документ = ОбъектВорд.Application.Documents.Add(ПолноеНаименование);
                     
    ТаблицаПараметров// формирование таблицы в которой параметры которые нужно заменить в ворде           
 
    
    для каждого стр из ТаблицаПараметров цикл
          ДобавитьПараметр(стр.Имя,Стр.Значение,Документ);
    КонецЦикла;
    
    
    ФайлВорд.Записать(ПолноеНаименование);

   //// Документ из объекта и его активация
 
   //
 
    
   // запускаем приложение
 
    ЗапуститьПриложение(ПолноеНаименование);

Процедура ДобавитьПараметр(Имя,имяЗнч,Документ)
    Замена = Документ.Content.Find;
    попытка
        РезультатЗамены = Замена.Execute("[" + имя+ "]", , , , , , , , , ?(имяЗнч = Неопределено,"",имяЗнч), );
        пока РезультатЗамены = Истина цикл
            Замена = Документ.Content.Find;   
            РезультатЗамены = Замена.Execute("[" + имя + "]", , , , , , , , , ?(имяЗнч = Неопределено,"",имяЗнч), );
        КонецЦикла;                    
    исключение
        Сообщить("не могу вывести " +  "[" + имя + "]" +  имяЗнч);
    КонецПопытки;

КонецПроцедуры
   ИУБиПовиц
 
3 - 17.01.13 - 18:08
ТО есть у меня проблемма в том, я из двоичных данных макет получил, и могу его показать, но вот изменить данные вида [Номер], содержащиеся в этом макете не получается..
   ИУБиПовиц
 
4 - 18.01.13 - 11:11
Сейчас у меня получилось вот что, но есть проблемма раз открылся док, потом уже не открывается пишет что произошла исключительная ситуация при открытии, при перезапуске 1с все работет.

    СтруктураДанных = ВызовОбертки()//помещаю в хранилище    
 
    ФайлВорд = ПолучитьИзВременногоХранилища(СтруктураДанных);
    ПутьКФайлуНаКлиенте = "temp" + СокрЛП(ПолучитьНомер()) + ".doc";
    
    
    Попытка
        ОбъектВорд = Новый COMОбъект("WORD.Application");   
    Исключение
        Сообщить("Установи WORD..");
        Возврат;
    КонецПопытки;
    
    попытка
        ПолноеНаименование = КаталогВременныхФайлов() + ПутьКФайлуНаКлиенте;
        ФайлВорд.Записать(ПолноеНаименование);           
        Документ = ОбъектВорд.Documents.Open(ПолноеНаименование);;
        Документ.Activate();
        ТаблицаПараметров =Формированиетаблицыпараметров(СсылкаНаОбъект);
        
        

        для каждого стр из ТаблицаПараметров цикл
           //ДобавитьПараметр(стр.Имя,Стр.Значение,Документ);
 
            Имя = Стр.Имя;
            ИмяЗнч = Стр.Значение;
            Замена = Документ.Content.Find;
            попытка
                РезультатЗамены = Замена.Execute("[" + имя+ "]", , , , , , , , , ?(имяЗнч = Неопределено,"",имяЗнч), );
                пока РезультатЗамены = Истина цикл
                    Замена = Документ.Content.Find;   
                    РезультатЗамены = Замена.Execute("[" + имя + "]", , , , , , , , , ?(имяЗнч = Неопределено,"",имяЗнч), );
                КонецЦикла;                    
            исключение
                Сообщить("не могу вывести " +  "[" + имя + "]" +  имяЗнч);
            КонецПопытки;
            
            
        КонецЦикла;
        
        ДругоеНаим = КаталогВременныхФайлов() +"t1_" + ПутьКФайлуНаКлиенте;
        
        ОбъектВорд.Application.Visible = Истина; 

        ОбъектВорд.Activate();
        
    Исключение
        ОбъектВорд = Неопределено;
        ФайлВорд = Неопределено;
        Документ = Неопределено; 
       //ОбъектВорд.Application.Quit();
 

        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    попытка     
        ФайлВорд = Неопределено;
        Если не ОбъектВорд = Неопределено тогда
           //ОбъектВорд.Quit();
 
           //ОбъектВорд = Неопределено;
 
        КонецЕсли;         

    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует