|   |   | 
| 
 | Еще раз - про возврат ActiveDocument с сервера на клиент | ☑ | ||
|---|---|---|---|---|
| 0
    
        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) | |||
| 1
    
        PR 17.05.18✎ 12:44 | 
        Так так     | |||
| 2
    
        hhhh 17.05.18✎ 12:54 | 
        (0) зачем тут вообще com-объект?     | |||
| 3
    
        Pro100 17.05.18✎ 13:00 | 
        (2)
 мне в дальнейшем надо будет заполнить файл эксель | |||
| 4
    
        3achem 17.05.18✎ 13:04 | 
        (3) А зачем создавать эксель на сервере? Создай на клиенте     | |||
| 5
    
        Pro100 17.05.18✎ 13:05 | 
        (4)
 Мне надо заполнить файл экселя, который сидит в макете обработки и тип макета ActiveDocument, на клиенте он не работает... | |||
| 6
    
        3achem 17.05.18✎ 13:07 | 
        (5) 
 ПолученныйОбъект = Новый COMОбъект("EXCEL.Application"); Объект.ПолученныйCOMОбъект = ПоместитьВоВременноеХранилище(ПолученныйОбъект); Дальше на сервере получаешь из хранилища | |||
| 7
    
        Базис naïve 17.05.18✎ 13:07 | 
        Работать с эксельными файлами надо на клиенте - и проще, и нет необходимости покупки больших лицензий на Excel.     | |||
| 8
    
        3achem 17.05.18✎ 13:15 | 
        (6) Извините, я дичь написал и не правильно понял задачу     | |||
| 9
    
        Pro100 17.05.18✎ 13:27 | 
        (7)
 Ок, я готов работать на клиенте, подскажите как это сделать? У меня не получается... Как с макетом у которого тип ActiveDocument работать на клиенте? если клиент и сервер это разные компьютеры... Может конечно руки не оттуда растут ))))) | |||
| 10
    
        Вафель 17.05.18✎ 13:31 | 
        (6) так давно уже нельзя     | |||
| 11
    
        AlvlSpb naïve 17.05.18✎ 13:49 | 
        (9) Как вариант (не пробовал, но вроде должно работать)
 Получаешь файл из макета на сервере, сохраняешь на диск. Получаешь файл сом объектом, делаешь все что надо, сохраняешь и загружаешь назад в макет | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |