COM объект Excel.Application ошибка при сохранении файла #711793


#0 by shushik
Здравствуйте. У меня возникла проблема с COM объектом "Excel.Application". В момент сохранения файла Excel из 1С с помощью  метода  SaveAs возникает ошибка. База 1С серверная. Ошибка возникает только при работе с клиента запущенного на другой машине (не на сервере, где крутится 1С). Если запускать клиент на сервере, где крутится 1С, то все отрабатывает отлично. Выполняю следующий код:     ДиалогСохраненияФайла.Заголовок = "Сохранение файл Microsoft Excell"; Ошибка возникает на строке  Книга.SaveAs(ПолноеИмяФайла) . Текст ошибки следующий: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Microsoft Office Excel cannot access the file 'C:Выгрузка в Excel995D4090'. There are several possible reasons: • The file name or path does not exist. • The file is being used by another program. • The workbook you are trying to save has the same name as a currently open workbook. Больше всего мне не понятно, то, что  в качестве входного параметра метода  SaveAs  передается путь «C:Выгрузка в ExcelНовыйЛист.xls»,  а система  ругается на путь «C:Выгрузка в Excel995D4090».  Почему к указанному во входном параметре пути приписывается какая-то ерунда? Естественно такого каталога не существует и система не может получить к нему доступ. Откуда этот путь взялся не понятно. Подскажите, пожалуйста, куда копать.
#1 by ДенисЧ
Вроде по-русски написано "annot access the file"...
#2 by shushik
Да к файлу C:Выгрузка в Excel995D4090 доступ получить не может, но ведь к нему и не нужно. Переменная ПолноеИмяФайла в момент вызова метода  Книга.SaveAs(ПолноеИмяФайла) равна C:Выгрузка в ExcelНовыйЛист.xls
#3 by f_vadim
это ещё надо проверить, ведь может быть и ""
#4 by f_vadim
ааааа... на сервере!
#5 by shushik
Кажется понятно в чем проблема. Путь куда сохранять я выбираю на клиенте, а Excel открывается и сохраняется на сервере, и соответственно путь который был передан система ищет на сервере, а его там нет(. Но тогда не пойму как сохранить этот файл на клиенте и возможно ли это в случае если все действия с Excel делаются на сервере.
#6 by f_vadim
бинго! делать всё на клиенте. остальные способы через жпо.
#7 by f_vadim
плюс на сервере может не быть офиса. вообще зачем офис на сервере?
#8 by shushik
))) На клиенте делать это очень ресурсоемко, я привела в примере сильно упрощенный код. Хотелось бы все-таки делать запись в Excel на сервере. Может быть, есть возможность каким-то образом сохранить файл на сервере, а потом перетащить его на клиент?
#9 by f_vadim
Ресурсоёмко, это много сохранять в эксель? Или много обрабатывать данных? Можно обработку сделать на сервере, а данные для записи вернуть на клиента, скажем, в массиве или массиве структур. Ну или как-то так:
#10 by ДенисЧ
Используй ПолучитьИмяВременногоФайла а потом через Хз возвращай клиенту
#11 by Kalambur
Катя, используй хранилище
#12 by shushik
Спасибо огромное. Попробую так.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С