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

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

Еще раз - про возврат ActiveDocument с сервера на клиент

Еще раз - про возврат ActiveDocument с сервера на клиент
Я
   Pro100
 
17.05.18 - 12:43
Здравствуйте.
У меня вопрос, перепробовал кучу вариантов уже, даже казалось бы такой простой вариант как :

&НаСервере
Функция ПоместитьМакетВХранилище(ИмяМакета)
    ОтчетОбъект = РеквизитФормыВЗначение("Объект"); 
    Макет = ОтчетОбъект.ПолучитьМакет("Макет1"); 
    ИмяВрем = ПолучитьИмяВременногоФайла(".xls");
    Макет.Записать(ИмяВрем);
        
    АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВрем));
    
    Возврат АдресВоВременномХранилище;
КонецФункции
&НаКлиенте
Процедура Тест(Команда)
    Попытка
        МакетФайл   = ПоместитьМакетВХранилище("Макет");
        ДвоичныеДанные = ПолучитьИзВременногоХранилища(МакетФайл);
        ИмяФ = ПолучитьИмяВременногоФайла("xls");
        ДвоичныеДанные.Записать(ИмяФ);
        Макет = ПолучитьCOMОбъект(ИмяФ)//инициализируем COM-объект

        Сообщить("Ура");
        
    Исключение
        Сообщить("Не удалось получить макет");
        Сообщить(ОписаниеОшибки());                                            
    КонецПопытки; 
КонецПроцедуры

Вот при попытке инициализовать COM-объект 1С выдает ошибку:
{ВнешняяОбработка.ВыгрузкаВБанк.Форма.Форма.Форма(307)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект): Ошибка получения объекта COM: -2146959355(0x80080005): Ошибка при выполнении приложения-сервера

1С:Предприятие 8.3 (8.3.10.2699)
 
 
   PR
 
1 - 17.05.18 - 12:44
Так так
   hhhh
 
2 - 17.05.18 - 12:54
(0) зачем тут вообще com-объект?
   Pro100
 
3 - 17.05.18 - 13:00
(2)
мне в дальнейшем надо будет заполнить файл эксель
   3achem
 
4 - 17.05.18 - 13:04
(3) А зачем создавать эксель на сервере? Создай на клиенте
   Pro100
 
5 - 17.05.18 - 13:05
(4)
Мне надо заполнить файл экселя, который сидит в макете обработки и тип макета ActiveDocument, на клиенте он не работает...
   3achem
 
6 - 17.05.18 - 13:07
(5)
ПолученныйОбъект = Новый COMОбъект("EXCEL.Application");
        
Объект.ПолученныйCOMОбъект = ПоместитьВоВременноеХранилище(ПолученныйОбъект); 

Дальше на сервере получаешь из хранилища
   Базис
 
7 - 17.05.18 - 13:07
Работать с эксельными файлами надо на клиенте - и проще, и нет необходимости покупки больших лицензий на Excel.
   3achem
 
8 - 17.05.18 - 13:15
(6) Извините, я дичь написал и не правильно понял задачу
   Pro100
 
9 - 17.05.18 - 13:27
(7)
Ок, я готов работать на клиенте, подскажите как это сделать? У меня не получается... Как с макетом у которого тип ActiveDocument работать на клиенте? если клиент и сервер это разные компьютеры...
Может конечно руки не оттуда растут )))))
   Вафель
 
10 - 17.05.18 - 13:31
(6) так давно уже нельзя
 
 Рекламное место пустует
   AlvlSpb
 
11 - 17.05.18 - 13:49
(9) Как вариант (не пробовал, но вроде должно работать)
Получаешь файл из макета на сервере, сохраняешь на диск. Получаешь файл сом объектом, делаешь все что надо, сохраняешь и загружаешь назад в макет

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