Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:00

8.3 обычное приложение. Сохранение файла Эксель

Автор Natain14, 17 фев 2016, 09:00

0 Пользователей и 1 гость просматривают эту тему.

Natain14

Добрый день, подскажите, пожалуйста, можно ли при сохранении файла Эксель, если файл с таким именем уже существует, то в конце имени добавлять номер версии файла, например, Книга1(1), Книга1(2)...
Была мысль добавить регистр для хранения версий, но передумала, т.к. пользователь может переименовать файл. Или через попытку в цикле проверять существование файла через ПутьФайла.Существует() и добавлять к версии +1

Но может есть какой-нибудь стандартный метод?

дфтын

ПутьФайла.Существует()
вполне себе стандратно

vitasw

Цитата: Natain14 от 17 фев 2016, 09:00через попытку в цикле проверять существование файла
НайтиФайлы() не предлагать?

Natain14

Цитата: дфтын от 17 фев 2016, 10:59
ПутьФайла.Существует()
вполне себе стандратно

Просто сейчас у меня получилось вот так.  Мне не нравится, что количество версий ограничено в данном случае 200, а дальше будет выходить ошибка. И в том случае, если при сохранении возникнет ошибка не связанная с именем, то он ведь скорее всего обойдет весь этот цикл? Хм... или не обойдет...он же у меня в попытке, так что вылетит наверное по исключению... В общем, может можно это решение как-то усовершенствовать или изменить?

Для к=0 по 200 цикл
         ИмяФайлаДляПроверки = Новый Файл(ИмяФайла+?(к=0,".xls"," ("+к+").xls"));
         Если не ИмяФайлаДляПроверки.Существует() тогда
         
         Книга.SaveAs(ИмяФайла+?(к=0,".xls"," ("+к+").xls"),18);
         ExcelПриложение.Quit();        
      
         Сообщить("Файл выгружен успешно: " +ИмяФайла+?(к=0,""," ("+к+")"));    
         ЗапуститьПриложение(ИмяФайла+?(к=0,".xls"," ("+к+").xls"));

         Прервать;
         КонецЕсли;
      КонецЦикла;

Kironten

ФайлНайден = Истина;
к=0;
Пока ФайлНайден Цикл
//Для к=0 по 200 цикл
   
    ИмяФайлаДляПроверки = Новый Файл(ИмяФайла+?(к=0,".xls"," ("+к+").xls"));
   
    Если не ИмяФайлаДляПроверки.Существует() тогда
Книга.SaveAs(ИмяФайла+?(к=0,".xls"," ("+к+").xls"),18);
        ФайлНайден = Ложь;
ExcelПриложение.Quit(); 

Сообщить("Файл выгружен успешно: " +ИмяФайла+?(к=0,""," ("+к+")"));
ЗапуститьПриложение(ИмяФайла+?(к=0,".xls"," ("+к+").xls"));

//Прервать;
    КонецЕсли;

    Если к = 1000 Тогда
        Сообщить("Что-то больно дохрена выходит. Давайте закругляться!");
        Прервать;
    КонецЕсли;
     к = к + 1;
КонецЦикла;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск