|
Еще раз - про возврат 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
17.05.18
✎
13:49
|
(9) Как вариант (не пробовал, но вроде должно работать)
Получаешь файл из макета на сервере, сохраняешь на диск. Получаешь файл сом объектом, делаешь все что надо, сохраняешь и загружаешь назад в макет
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший