Вместо метода SaveAs пришлось использовать SaveCopyAs, иначе не сохраняло в старом формате 56 (xlExcel8).
Речь об 1С7.7 и Office2007. Нужно было, чтобы при наличии на компьютере нового офиса, обработка сохраняла XLS в старом формате автоматически.
Речь об 1С7.7 и Office2007. Нужно было, чтобы при наличии на компьютере нового офиса, обработка сохраняла XLS в старом формате автоматически.
Код |
---|
Попытка
Эксель = СоздатьОбъект("Excel.Application");
Исключение
ОписаниеРезультата = ОписаниеОшибки();
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат 0;
КонецПопытки;
Эксель.Visible=0;
Эксель.DisplayAlerts=0;
Эксель.ScreenUpdating = 0;
Эксель.EnableEvents = 0;
Эксель.DefaultSaveFormat = 56; //xlExcel8 = 56
Книга = Эксель.WorkBooks.Add();
Лист = Книга.WorkSheets(1);
Книга.Sheets(1).Name = "Справочник товаров";
Лист.Cells(А,1).Value = СокрП(СписокТоваров.Наименование);
Попытка
Эксель.DefaultSaveFormat = 56;
Книга.SaveCopyAs(КаталогОбмена + мИмяФайлаТоваров);
Исключение
ОписаниеРезультата = ОписаниеОшибки();
Возврат 0;
КонецПопытки;
Эксель.Quit();
Показать полностью |
По теме из базы знаний
- Решение проблемы медленной загрузки из файла Excel, защищенного паролем
- "Подводные камни" при работе с макетами типа ActiveDocument 1С 8.3 УФ. Клиент-Сервер. Режимы работы Тонкий, Веб клиенты
- Доработка документа "Требование-накладная" для выгрузки табличной части в Excel
- Работа с Ворд через СОМ-Объект
- Пишем, рисуем, конвертируем изображения с помощью Native API компоненты 1С, использующей GDI+
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Хочу запоролить выгружаемый в иксель файл. Пользую метод из Темы:
Пишет, что: "Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно".
Как правильно использовать этот метод?
Код |
---|
//Установка пароля на файл
Файл = Новый COMОбъект("Excel.Application");
Файл.DisplayAlerts = 0; //не задавать вопросы
Файл.Application.AutomationSecurity = 3; //уровень безопасности, макросы отключены
Книга = Файл.Workbooks.Open(строкаТЧ.Файл);
Password = "111";
//WriteResPassword = "222";
Книга.SaveAs(строкаТЧ.Файл,, Password); //, WriteResPassword
Книга.Close();
Показать полностью |
Пишет, что: "Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно".
Как правильно использовать этот метод?
Из лички:
kitt 17.09.2008
>Что то у меня форум глючит, не смог запостить ответ на твою тему SaveAs, поэтому на всякий случай скину сюда.
>Видимо не хочет из-за второго пропущенного параметра в методе SaveAs, который отвечает за формат файла, и представляет собой >числовую константу. Я попробовал вставить в твой пример в качестве второго параметра число 4143 (xlWorkBookNormal), и все >прекрасно заработало. Попробуй.
Спасибо, буду пробовать.
kitt 17.09.2008
>Что то у меня форум глючит, не смог запостить ответ на твою тему SaveAs, поэтому на всякий случай скину сюда.
>Видимо не хочет из-за второго пропущенного параметра в методе SaveAs, который отвечает за формат файла, и представляет собой >числовую константу. Я попробовал вставить в твой пример в качестве второго параметра число 4143 (xlWorkBookNormal), и все >прекрасно заработало. Попробуй.
Спасибо, буду пробовать.
Всё отлично получилось, СПАСИБО за внимание к проблемме:
получается два пароля, один на открытие, другой на внесение изменений.
про минус - в личке он есть при копировании в форум потерялся :(
Код |
---|
Файл = Новый COMОбъект("Excel.Application");
Книга = Файл.Workbooks.Open(ФайлХЛ);
Password = "111";
WriteResPassword = "222";
Попытка
Книга.SaveAs(ФайлХЛ,-4143,Password,WriteResPassword); // ,,
Исключение
Сообщить("не получилось");
КонецПопытки;
Книга.Close();
Показать полностью |
получается два пароля, один на открытие, другой на внесение изменений.
про минус - в личке он есть при копировании в форум потерялся :(
1C генерировала новое имя файла:
C:\Users\Администратор.WIN-AI1V64CELUJ\AppData\Local\Temp\v8_4082_444.xlsx
Под моим пользователем туда нет доступа.
Поменял каталог на мой рабочий стол.
Ошибка не изменилась:
C:\Users\Администратор.WIN-AI1V64CELUJ\AppData\Local\Temp\v8_4082_444.xlsx
Под моим пользователем туда нет доступа.
Поменял каталог на мой рабочий стол.
Ошибка не изменилась:
Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно
Прикрепленные файлы:

(12) если же поменять формат файла на сервере на ".xls" и ставил
Excel.DefaultSaveFormat = -4143;
Не помогало.
Сейчас вместо SaveAs поставил SaveCopyAs. Как костыль пойдет - работает.
Во время SaveAs писало что нет пути или файла или нет доступа или программа уже используется.
Вопрос только кем если только 1 процесс экселя запущен, а SaveCopyAs отлично отрабатывает.
Офис 2010 стоит, винда 2016.
Excel.DefaultSaveFormat = -4143;
Не помогало.
Сейчас вместо SaveAs поставил SaveCopyAs. Как костыль пойдет - работает.
Во время SaveAs писало что нет пути или файла или нет доступа или программа уже используется.
Вопрос только кем если только 1 процесс экселя запущен, а SaveCopyAs отлично отрабатывает.
Офис 2010 стоит, винда 2016.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот