.SaveAs()

6. dimwap 21.02.12 17:24 Сейчас в теме
Вместо метода SaveAs пришлось использовать SaveCopyAs, иначе не сохраняло в старом формате 56 (xlExcel8).
Речь об 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();
Показать полностью
jk3; Chif13; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. PeRom 51 17.09.08 11:40 Сейчас в теме
Хочу запоролить выгружаемый в иксель файл. Пользую метод из Темы:
Код
//Установка пароля на файл
Файл = Новый COMОбъект("Excel.Application");
Файл.DisplayAlerts = 0;                   //не задавать вопросы
Файл.Application.AutomationSecurity = 3;  //уровень безопасности, макросы отключены
Книга = Файл.Workbooks.Open(строкаТЧ.Файл);
Password = "111";
//WriteResPassword = "222";
Книга.SaveAs(строкаТЧ.Файл,, Password);  //, WriteResPassword
Книга.Close(); 
Показать полностью

Пишет, что: "Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно".
Как правильно использовать этот метод?
8. PeRom 51 17.09.08 15:37 Сейчас в теме
Из лички:
kitt 17.09.2008
>Что то у меня форум глючит, не смог запостить ответ на твою тему SaveAs, поэтому на всякий случай скину сюда.

>Видимо не хочет из-за второго пропущенного параметра в методе SaveAs, который отвечает за формат файла, и представляет собой >числовую константу. Я попробовал вставить в твой пример в качестве второго параметра число 4143 (xlWorkBookNormal), и все >прекрасно заработало. Попробуй.

Спасибо, буду пробовать.
9. kitt 323 17.09.08 16:08 Сейчас в теме
блин, число "-4143". Минус Четыре Тысячи Сто Сорок Три
10. PeRom 51 17.09.08 16:18 Сейчас в теме
Всё отлично получилось, СПАСИБО за внимание к проблемме:
Код
Файл = Новый COMОбъект("Excel.Application");
Книга = Файл.Workbooks.Open(ФайлХЛ);
Password = "111";
WriteResPassword = "222";
Попытка
   Книга.SaveAs(ФайлХЛ,-4143,Password,WriteResPassword);  //    ,,  
Исключение
   Сообщить("не получилось");
КонецПопытки;
Книга.Close();
Показать полностью

получается два пароля, один на открытие, другой на внесение изменений.
про минус - в личке он есть при копировании в форум потерялся :(
Voody; dimwap; +2 Ответить
11. kitt 323 17.09.08 16:19 Сейчас в теме
Эх... Люблю VBA. Но работать приходиться с 1с :)
12. Xershi 1536 10.07.19 13:36 Сейчас в теме
1C генерировала новое имя файла:
C:\Users\Администратор.WIN-AI1V64CELUJ\AppData\Local\Temp\v8_4082_444.xlsx
Под моим пользователем туда нет доступа.
Поменял каталог на мой рабочий стол.
Ошибка не изменилась:
Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно
Прикрепленные файлы:
13. Xershi 1536 10.07.19 13:49 Сейчас в теме
(12) если же поменять формат файла на сервере на ".xls" и ставил
Excel.DefaultSaveFormat = -4143;
Не помогало.
Сейчас вместо SaveAs поставил SaveCopyAs. Как костыль пойдет - работает.
Во время SaveAs писало что нет пути или файла или нет доступа или программа уже используется.
Вопрос только кем если только 1 процесс экселя запущен, а SaveCopyAs отлично отрабатывает.
Офис 2010 стоит, винда 2016.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот