Произошла исключительная ситуация microsoft excel документ не сохранен

   aleks100

14.09.20 — 09:07

Запускаю обработку выгрузки в excel из 1с, выходит сообщение

Произошла исключительная ситуация (microsoft excel не может открыть или сохранить документы из-за нехватки памяти или места на диске)

хотя на диске много свободного места, почему такая ошибка выходит?

   Fedor-1971

1 — 14.09.20 — 09:38

(0) Прикольно, комп у тебя, а вопрос на форуме.

1. Почисти temp системы и свой

2. Сходи к админу и поинтересуйся, что не так (как минимум, посмотри, что записано в журнале винды)

3. Проверь отладчиком выгрузку, может её циклит (совсем или на конкретных данных)

Можно наоборот.

   aleks100

2 — 14.09.20 — 09:38

{ВнешняяОбработка.ЗагрузкаВыгрузкаВExcel.Форма.Форма.Форма(102)}: Ошибка при вызове метода контекста (Add)

        Excel.WorkBooks.Add().SaveAs(ПутьКФайлуВыгрузки);

по причине:

Произошла исключительная ситуация (Microsoft Office Excel): Microsoft Office Excel не может открыть или сохранить документы из-за нехватки памяти или места на диске.

• Чтобы освободить память, закройте ненужные программы или книги.

   aleks100

3 — 14.09.20 — 09:39

на сервере такая ошибка выходит

   Fedor-1971

4 — 14.09.20 — 09:45

(2) ты пытаешься сохранить пустую книгу?

Проверь право доступа Пользователя сервера 1С к указанному пути

ПутьКФайлуВыгрузки — тут имя файла есть? Проверь гарантированное отсутствие пробелов в пути и имени файла

   ДенисЧ

5 — 14.09.20 — 09:47

(2) «Excel.WorkBooks.Add().SaveAs(ПутьКФайлуВыгрузки);»

Пристрелить. Без жалости.

   Fedor-1971

6 — 14.09.20 — 10:01

(5) ну, чего уж так сразу то. Может это заглушка проверить работоспособность

В интернетах пишут, что возможен конфликт разрядности 1с х64, а Офис х32

тут уж как-нить самостоятельно

   aleks100

7 — 14.09.20 — 10:02

да 1с 64 битная

   aleks100

8 — 14.09.20 — 10:04

8.3.17.1549

   aleks100

9 — 14.09.20 — 10:07

проверить  отладчиком не могу sql server база, пытаюсь уставить тестовую файловую базу  пишет лицензия не обнаружена

   aleks100

10 — 14.09.20 — 10:08

office 7

   aleks100

11 — 14.09.20 — 12:29

мне сказал, что обработка криво написана надо специальную выгрузку для sql server

  

VladZ

12 — 14.09.20 — 12:42

Excel.WorkBooks.Add().SaveAs(ПутьКФайлуВыгрузки); — зачем?

Сделай проще: выводи в табличный документ и сохранять как XLS.

  

bard666

15.05.15 — 10:30

Столкнулся со следущим: При сохранении файла ексель в 1С вылетает ошибка:

Ошибка при вызове метода контекста (Save)

                ТекущийДокЕксель.Save();

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод Save из класса Application завершен неверно

Порылся на форумах, внятного ответа как исправить не нашёл.

Делается следущее: есть файл екселя (.xls) с заданной структурой, в него вносятся данные, сохраняются, отсылаются на почты.

Может ли быть такая ошибка из-за того, что на сервере, где выполняется обработка стоит 2013 офис и файл открывается в режиме совместимости? Как это обходить?

  

bard666

1 — 15.05.15 — 10:59

Метод saveAs вообще не обнаружен.

  

Ненавижу 1С

2 — 15.05.15 — 11:01

может прав нет на место сохранения?

  

bard666

3 — 15.05.15 — 11:01

Никто не сталкивался?

  

bard666

4 — 15.05.15 — 11:02

Права есть. Если просто открыть екселем, изменить и сохранить как — все прокатывает, а через 1С сохранить не получается.

  

bard666

5 — 15.05.15 — 11:04

Создается файлик, но ячейки пустые. Формат вроде нужный — .xls

  

Ненавижу 1С

6 — 15.05.15 — 11:05

(4) если это делается на сервере, то права надо смотреть у пользователя под кем работает служба сервера приложений

  

фобка

7 — 15.05.15 — 11:13

Новая книга? Попобуй saveas()

  

bard666

8 — 15.05.15 — 11:13

(6) Попробую уточнить. По результатам отпишусь.

  

bard666

9 — 15.05.15 — 11:13

(7) При этом методе

Метод объекта не обнаружен (SaveAs) ТекущийДокЕксель.SaveAs(КаталогДанных + «» + ТекИмя);

  

фобка

10 — 15.05.15 — 11:14

Текущийдокэксель это книга или аппликейшн?

  

фобка

11 — 15.05.15 — 11:17

Ну кароч ты книгу должен сохранять. Покажи что присваиваешь текущийдокэксель

  

bard666

12 — 15.05.15 — 11:32

До меня делалось:

Код функции, которая возвращает ТекущийДок

Excel    = 0;

    

    Попытка

        Excel = Новый COMОбъект(«Excel.Application»);

    Исключение

        Сообщить(«Не удалось инициализировать Excel»);

        Возврат Неопределено;

    КонецПопытки;

    

    Попытка

        тИмяСупера    = СокрЛП(Супервайзер.Наименование);

        тИмяСупера    = СтрЗаменить(тИмяСупера, «#», «»);

        чПоз    = Найти(тИмяСупера, » «);

        Если чПоз > 0 Тогда

            тИмяСупера    = СокрЛП(Лев(тИмяСупера, чПоз));

        КонецЕсли;

        

        тТекстАшан    = «»;

        чПозНайшлиАшан    = Найти(Должность.Наименование, «АШАН»);

        Если чПозНайшлиАшан > 0 Тогда

            тТекстАшан    = «_ashan»;

        КонецЕсли;

        

        ИмяФайлаКопия = тИмяСупера + «_» + СокрЛП(Должность.Должность) + тТекстАшан + «_» + СокрЛП(Должность.Код) + «_»+Месяц(ТекущаяДата());    

        ИмяФайлаКопия = СтрЗаменить(ИмяФайлаКопия,»00000″,»»);

        ИмяТекужегоДокументаЕксель = СокрЛП(КаталогДанных) + «» + ИмяФайлаКопия + «.xls»;

        

        Попытка

            КопироватьФайл(ИмяФайла, ИмяТекужегоДокументаЕксель);         

            Excel.Workbooks.Open(ИмяТекужегоДокументаЕксель);

        Исключение

            Сообщить(«Некорректное имя файла при копировании (» + ИмяФайла + «) в (» + ИмяТекужегоДокументаЕксель + «)»);

            Excel    = 0;

        КонецПопытки;

        

    Исключение

        Сообщить(ОписаниеОшибки());

        Excel.Quit();

        Excel    = 0;

    КонецПопытки;

    Возврат Excel;

  

фобка

13 — 15.05.15 — 11:33

(12) в данном случае текущийдок это не книга

  

фобка

14 — 15.05.15 — 11:34

Текдок.activeworkbook

  

фобка

15 — 15.05.15 — 11:35

И да — в (12) копрокод

  

bard666

16 — 15.05.15 — 11:37

(15) Пробовал

ТекущийДокЕксель.Application.Workbooks.SaveAs(КаталогДанных + «» + ТекИмя);

ТекущийДокЕксель.Workbooks.SaveAs(КаталогДанных + «» + ТекИмя);

Также не видит функцию

  

bard666

17 — 15.05.15 — 11:43

(15)

{Форма.Форма.Форма(571)}: Ошибка при вызове метода контекста (SaveAs)

                ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя);

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

  

фобка

18 — 15.05.15 — 11:43

(16) workbooks это не workbook — другой объект

  

Wern

19 — 15.05.15 — 11:43

(16) смотри (12). то что у тебя все неправильное написание.

  

фобка

20 — 15.05.15 — 11:44

Ответ дан выше, перечитай (14)

  

bard666

21 — 15.05.15 — 11:46

(20) я в (17) показал какая ошибка выпадает при ТекущийДокЕксель.ActiveWorkbook

  

bard666

22 — 15.05.15 — 11:47

(19) где неправильно?

  

фобка

23 — 15.05.15 — 11:47

Сообщить(каталогданных+»»+текимя);

  

bard666

24 — 15.05.15 — 11:58

(23) Здесь все четко.

«F:Ведомостиимя.xls»

  

фобка

25 — 15.05.15 — 12:01

(24) Если файл существует попробуй опять save(). Для saveas можно вторым параметром задать формат файла еще

  

bard666

26 — 15.05.15 — 12:07

(25) Я ж говорю — ошибка есть, но файл пустой появляется..)

  

bard666

27 — 15.05.15 — 12:10

(25) Попробовал передать формат

{Форма.Форма.Форма(571)}: Ошибка при вызове метода контекста (SaveAs)

                ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя, «.xls»);

по причине:

Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

  

фобка

28 — 15.05.15 — 12:13

(27) не, формат это число. Передай туда 50

  

фобка

29 — 15.05.15 — 12:16

Существует ли на сервере f:ведомости?

  

bard666

30 — 15.05.15 — 12:17

(28) Создал. Ура! Осталось протестировать откроет ли 2003 офис

  

фобка

31 — 15.05.15 — 12:22

(30) Вбей в справке по vba xlFileFormat

  

bard666

32 — 15.05.15 — 12:56

(31) а в Save есть подобные параметры?

  

фобка

33 — 15.05.15 — 13:12

(32) нет, он вообще без параметров

  

bard666

34 — 15.05.15 — 13:20

(33) Тогда ладно. Файлики создаются.

Есть ещё вопрос.

Обработина, сделанная по образу и подобию

http://catalog.mista.ru/public/88055/

ругается на .Windows(1).Visible = 1;

  

фобка

35 — 15.05.15 — 13:28

(34) значит опять путанница с объектами

  

bard666

36 — 15.05.15 — 13:29

Код такой:

ТабДок = Новый табличныйДокумент;

    АктивныйДокумент = ПолучитьМакет(«Макет»);  //— Макет Active Document лист Ексель.

    КомОбъект = АктивныйДокумент.Получить();    

    //— далее пишем в Cells(НомерСтроки, НомерСтолбца). Value  все что нужно. см.пример ниже

    //шапка

    Лист=КомОбъект.Sheets(1);

    

        
    Лист.Cells(9,4).Value=Идент;

    Лист.Cells(10,4).Value=Док.Организация.ПолноеНаименование();

    Лист.Cells(11,4).Value=НомерКонтракта;

    Лист.Cells(12,4).Value= ?(ЗначениеЗаполнено(Дата), Формат(Дата, «ДФ=dd.MM.yyyy»), Формат(Док.Дата, «ДФ=dd.MM.yyyy»));

    Лист.Cells(13,4).Value=НомРеестра;

    СимволовДоНулей=Найти(ДокППИ.Номер,»0″);

    НомППИ=Число(Прав(ДокППИ.Номер,СтрДлина(ДокППИ.Номер)-СимволовДоНулей-1));

    Лист.Cells(14,4).Value=СокрЛП(Формат(НомППИ, «ЧГ=0»));

    Лист.Cells(15,4).Value=Формат(ДокППИ.Дата, «ДФ=dd.MM.yyyy»);

    

    //Зарплата к выплате организаций

    РезультатЗапроса = Запрос.Выполнить();

    
    Если НЕ(РезультатЗапроса.Пустой()) Тогда

        

        //СтрокаОтчета = Лист.Range(«Строка»);

        СтрокаОтчета = Лист.Range(«A20»);

        Счетчик=0;

        Итого=0;

        Выборка=РезультатЗапроса.Выбрать();

        Пока Выборка.Следующий() Цикл

            Счетчик=Счетчик+1;

            Если Счетчик>1 Тогда

                СтрокаОтчета.EntireRow.Copy();

                СтрокаОтчета.EntireRow.Insert();

            КонецЕсли;

            //ТекСтрока = СтрокаОтчета.Range(«A»+(СтрокаОтчета.Row-1));

            //ТекСтрока.Cells(СтрокаОтчета.Row-1,1).Value=»Вася»;

            //ТекСтрока.Find(«<ИмяСотрудника>»).Value = СокрЛП(Выборка.ФизЛицоПолностью);

            Лист.Cells(19+Счетчик,1).Value=СокрЛП(Выборка.ФизЛицоПолностью);

            Лист.Cells(19+Счетчик,4).Value=СокрЛП(Выборка.ЛицевойСчет);

            Лист.Cells(19+Счетчик,6).Value=Число(СокрЛП(Выборка.Сумма));

            Итого=Итого+Выборка.Сумма;

        КонецЦикла;

    КонецЕсли;

    

    //итоговая строка

    Лист.Cells(19+Счетчик+1,4).Value=СчетКонтракта;

    Лист.Cells(19+Счетчик+1,6).Value=Итого;

    
    Лист.Cells(19+Счетчик+20,1).Value=»»;   //заплатка с целью увидеть макет целиком

    КомОбъект.Application.Visible = 1;

    КомОбъект.Windows(1).Visible = 1;

    
    КомОбъект.Activate();

  

bard666

37 — 15.05.15 — 13:30

(35) выложил код. Запросы всякие вырезал.

  

bard666

38 — 15.05.15 — 13:32

Вся эта ботва вылезла когда поставили 2013 офис)

  

DomovoiAtakue

39 — 15.05.15 — 13:43

Отдельный момент.

Я может ошибаюсь: по коду если все удачно сохранилось, то объект excel не удаляется.

  

bard666

40 — 15.05.15 — 13:45

(39) не совсем понимаю к чему это..

  

bard666

41 — 15.05.15 — 13:48

Ошибка такая: Ошибка при вызове метода контекста (Windows)

    КомОбъект.Windows(1).Visible = 1;

по причине:

Произошла исключительная ситуация (0x8002000b)

  

DomovoiAtakue

42 — 15.05.15 — 13:54

(40)Ну если я все правильно понимаю, то 10 раз запустите свой код, не выходя из 1с, и в процессах будет висеть 10 excel-ей.

  

bard666

43 — 15.05.15 — 14:01

(42) Это все проверяю

  

bard666

44 — 15.05.15 — 14:02

У меня просто открывается ексель как приложение, а окна документа не видно. Серый экран.

  

bard666

45 — 15.05.15 — 14:08

А со второго раза создает.

  

bard666

46 — 15.05.15 — 14:26

Придумал как поправить:

Вместо

КомОбъект.Application.Visible = 1;

    КомОбъект.Windows(1).Visible = 1;

    
    КомОбъект.Activate();

Делаю

    

         КомОбъект.Activate();

    КомОбъект.Windows(1).Visible = 1;

Столкнулся со следущим: При сохранении файла ексель в 1С вылетает ошибка: Ошибка при вызове метода контекста (Save)                 ТекущийДокЕксель.Save; по причине: Произошла исключительная ситуация (Microsoft Excel): Метод Save из класса Application завершен неверно Порылся на форумах, внятного ответа как исправить не нашёл. Делается следущее: есть файл екселя (.xls) с заданной структурой, в него вносятся данные, сохраняются, отсылаются на почты. Может ли быть такая ошибка из-за того, что на сервере, где выполняется обработка стоит 2013 офис и файл открывается в режиме совместимости? Как это обходить?

Метод saveAs вообще не обнаружен.

может прав нет на место сохранения?

Права есть. Если просто открыть екселем, изменить и сохранить как — все прокатывает, а через 1С сохранить не получается.

Создается файлик, но ячейки пустые. Формат вроде нужный — .xls

если это делается на сервере, то права надо смотреть у пользователя под кем работает служба сервера приложений

Новая книга? Попобуй saveas

Попробую уточнить. По результатам отпишусь.

При этом методе Метод объекта не обнаружен (SaveAs) ТекущийДокЕксель.SaveAs(КаталогДанных + «» + ТекИмя);

Текущийдокэксель это книга или аппликейшн?

Ну кароч ты книгу должен сохранять. Покажи что присваиваешь текущийдокэксель

До меня делалось: Код функции, которая возвращает ТекущийДок

в данном случае текущийдок это не книга

Пробовал Также не видит функцию

{Форма.Форма.Форма}: Ошибка при вызове метода контекста (SaveAs)                 ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя); по причине: Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

workbooks это не workbook — другой объект

смотри . то что у тебя все неправильное написание.

Ответ дан выше, перечитай

я в показал какая ошибка выпадает при ТекущийДокЕксель.ActiveWorkbook

Сообщить(каталогданных+»»+текимя);

Если файл существует попробуй опять save. Для saveas можно вторым параметром задать формат файла еще

Я ж говорю — ошибка есть, но файл пустой появляется..)

Попробовал передать формат {Форма.Форма.Форма}: Ошибка при вызове метода контекста (SaveAs)                 ТекущийДокЕксель.ActiveWorkbook.SaveAs(КаталогДанных + «» + ТекИмя, «.xls»); по причине: Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно

не, формат это число. Передай туда 50

Существует ли на сервере f:ведомости?

Создал. Ура! Осталось протестировать откроет ли 2003 офис

Вбей в справке по vba xlFileFormat

а в Save есть подобные параметры?

нет, он вообще без параметров

Тогда ладно. Файлики создаются. Есть ещё вопрос. Обработина, сделанная по образу и подобию

значит опять путанница с объектами

выложил код. Запросы всякие вырезал.

Вся эта ботва вылезла когда поставили 2013 офис)

Отдельный момент. Я может ошибаюсь: по коду если все удачно сохранилось, то объект excel не удаляется.

не совсем понимаю к чему это..

Ошибка такая: Ошибка при вызове метода контекста (Windows) по причине: Произошла исключительная ситуация (0x8002000b)

Ну если я все правильно понимаю, то 10 раз запустите свой код, не выходя из 1с, и в процессах будет висеть 10 excel-ей.

У меня просто открывается ексель как приложение, а окна документа не видно. Серый экран.

А со второго раза создает.

Придумал как поправить: Вместо

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

Как известно, 1С:Предприятие 8.1 имеет довольно ограниченное количество форматов в которых можно сохранить табличный документ. Вашему вниманию предлагается простая процедура, которая восполняет в какой-то мере этот недостаток.

Зачем это нужно? Дело в том, что при сохранении табличного документа в формате Excel средствами платформы 8.1 файл получается просто неприличных размеров и совершенно непригоден к рассылке. К примеру, прайс-листы с картинками могли иметь размер до 15-20 Мб. После сохранения в формате 2007 размер уменьшался на порядок. В результате я написал процедуру, которая сохраняет MXL в XLSX. Но умные люди посоветовали, что не нужно плодить обработки и процедуры для одного формата. Поэтому я написал более универсальную процедуру, которая в идеале поддерживает все форматы MS Excel 2003 — 2007, в том числе Dbf, Pdf и таблицы Open (Libre) office. Я включил в процедуру наиболее востребованные по моему мнению форматы. Но каждый для себя может добавить необходимые форматы. Как говорится, MSDN Вам в помощь.

Тестировалось на MS Office 2003 с установленным пакетом совместимости и MS Office 2010.

Ниже приведена процедура сохранения табличного документа. Идея проста — табличный документ сохраняется средствами 1С в формате Excel 97, а потом средствами Excel сохраняется в выбранном формате. Прилагается простенькая обработка, демонстрирующая этот метод. Вы можете не скачивать обработку — модуль прост и понятен. А интерфейсную часть реализовать — как Ваша фантазия позволит.

Ограничения:

Необходимо иметь установленный MS Excel 2003 с пакетом совместимости 2007 или MS Excel 2007 — 2010

// константы форматов 2003
//  xlCSVWindows = 23;
//  xlDBF2 = 7;
//  xlDBF3 = 8;
//  xlDBF4 = 11;
//  xlDIF = 9;
//  xlExcel9795 = 43;
//  xlTextWindows = 20;
//  xlUnicodeText = 42;
//  xlWebArchive = 45;
//  xlXMLSpreadsheet = 46;
//  xlXMLData = 47;

// основные константы 2007
//  These are the main file formats in Excel 2007-2010:
//  51 = xlOpenXMLWorkbook (without macro’s in 2007-2010, xlsx)
//  52 = xlOpenXMLWorkbookMacroEnabled (with or without macro’s in 2007-2010, xlsm)
//  50 = xlExcel12 (Excel Binary Workbook in 2007-2010 with or without macro’s, xlsb)
//  56 = xlExcel8 (97-2003 format in Excel 2007-2010, xls)

//  57 = PDF 
//  60 = xlOpenDocumentSpreadsheet  OpenDocument Spreadsheet

////////////////////////////////////////////////////////////////////////////////
// ПЕРЕМЕННЫЕ МОДУЛЯ
Перем СоответствиеРасширений;
Перем
СоответствиеВерсий;
////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

// Запись табличного документа в формате 2007 EXCEL
//
// Параметры
//  <пТабДок>  — <ТабличныйДокумент> — табличный документ
//  <пИмяФайла>  — <Строка> — имя исходного файла.
//  <пФорматФайла>  — <Число> — константа, определяющая формат файла
//
Процедура ЗаписатьMXLВФормате2007(пТабДок, пИмяФайла, пФорматФайла = 51) Экспорт

    Если НЕ ЗначениеЗаполнено(пИмяФайла) Тогда Возврат КонецЕсли;
   
ОбъектФайл = Новый Файл(пИмяФайла);
   
Расширение = СоответствиеРасширений.Получить(пФорматФайла);
   
ИмяНовогоФайла = ОбъектФайл.Путь + ОбъектФайл.ИмяБезРасширения + Расширение;
   
ИмяВременногоФайла = КаталогВременныхФайлов() + Лев(Строка(Новый УникальныйИдентификатор), 8) + «.xls»;
   
пТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLS);
   
Excel = Новый COMОбъект(«Excel.Application»);
    Если
Excel.Version < СоответствиеВерсий.Получить(пФорматФайла) Тогда
       
Сообщить(«В текущей версии Excel выбранный формат файла не поддерживается. Преобразование не выполнено!», СтатусСообщения.Важное);
       
Excel.Quit();
       
Excel = Неопределено;
        Возврат;
    КонецЕсли;
   
Excel.Visible = Ложь;
   
Excel.DisplayAlerts = Ложь;//чтобы EXCEL не спрашивал о перезаписи файла
   
КнигаExcel = Excel.WorkBooks.Open(ИмяВременногоФайла);
    Попытка
        Если
пФорматФайла = 57 Тогда //PDF
           
КнигаExcel.ExportAsFixedFormat(0, ИмяНовогоФайла, 0);
        Иначе
           
КнигаExcel.SaveAs(ИмяНовогоФайла, пФорматФайла);
        КонецЕсли;
    Исключение
       
Сообщить(«Не удалось сохранить файл: » + ОписаниеОшибки());
    КонецПопытки;
   
КнигаExcel.Close();
   
Excel.DisplayAlerts = Истина;
   
Excel.Quit();
   
Excel = Неопределено;
   
УдалитьФайлы(ИмяВременногоФайла);

КонецПроцедуры // ЗаписатьВФормате2007()

////////////////////////////////////////////////////////////////////////////////
// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ — ОБРАБОТЧИКИ СОБЫТИЙ ОБЪЕКТА

////////////////////////////////////////////////////////////////////////////////
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ

СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(51, «.xlsx»);
СоответствиеРасширений.Вставить(45, «.mht»);
СоответствиеРасширений.Вставить(46, «.xml»);
СоответствиеРасширений.Вставить(23, «.csv»);
СоответствиеРасширений.Вставить(9«.dif»);
СоответствиеРасширений.Вставить(8«.dbf»);
//работает только в 2007
СоответствиеРасширений.Вставить(47, «.xml»);
СоответствиеРасширений.Вставить(57«.pdf»);
СоответствиеРасширений.Вставить(60«.ods»);

СоответствиеВерсий = Новый Соответствие;
СоответствиеВерсий.Вставить(51, «11.0»);
СоответствиеВерсий.Вставить(45, «11.0»);
СоответствиеВерсий.Вставить(46, «11.0»);
СоответствиеВерсий.Вставить(23, «11.0»);
СоответствиеВерсий.Вставить(9«11.0»);
СоответствиеВерсий.Вставить(8«11.0»);
//работает только в 2007
СоответствиеВерсий.Вставить(47, «12.0»);
СоответствиеВерсий.Вставить(57,«12.0»);
СоответствиеВерсий.Вставить(60,«12.0»);

Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

1

1C 8.x

13.07.2017, 14:39. Показов 4072. Ответов 28

Метки нет (Все метки)


Добрый день! Мне нужно выгружать в каждый файл Excel до 1000 строк с базы данных. Вот мой код:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    |   ЛицевыеСчетГИСЖКХ.КодЖКХ
    |ИЗ
    |   Справочник.ЛицевыеСчетГИСЖКХ КАК ЛицевыеСчетГИСЖКХ
    |ГДЕ
    |   ЛицевыеСчетГИСЖКХ.Регион = &Регион
    |   И НЕ ЛицевыеСчетГИСЖКХ.КодЖКХ = """""; 
    Запрос.УстановитьПараметр("Регион",Регион);
    Таб = Запрос.Выполнить().Выгрузить();
    
    НомерСтроки=3;
    НомерПД=0;
    
    Для Каждого Стр из Таб Цикл   
        
        ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        ДиалогВыбора.Заголовок = "Выберите файл";
        
        Если ДиалогВыбора.Выбрать() Тогда
            ИмяФайлаДанных = ДиалогВыбора.ПолноеИмяФайла;
        КонецЕсли;  
        
        Попытка
            Эксель = Новый COMОбъект("Excel.Application"); 
        Исключение
            Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); 
            Возврат;
        КонецПопытки; 
        Книга=Эксель.Application.Workbooks.Open(ИмяФайлаДанных);
        
        Лист1 = Книга.WorkSheets(1);
        
        Для к = 1 по 1000 Цикл
            НомерСтроки=НомерСтроки+1;
            НомерПД=НомерПД+1;        
            Лист1.Cells(НомерСтроки, 1).Value =  Стр.КодЖКХ;
            Лист1.Cells(НомерСтроки, 2).Value =  "Текущий";               
            Лист1.Cells(НомерСтроки, 3).Value =  "ПД-"+НомерПД;
            Лист1.Cells(НомерСтроки, 4).Value =  Формат(Месяц,"ДФ=MM.yyyy");                
            Лист1.Cells(НомерСтроки, 5).Value =  "@";                
            Лист1.Cells(НомерСтроки, 12).Value =  "044525220";
            Лист1.Cells(НомерСтроки, 13).Value =  "40702810400010005163";
            Состояние("Кол-во= "+НомерПД);
        КонецЦикла;
        
        Попытка
            Книга.SaveAs(ИмяФайлаДанных); 
        Исключение
            Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); 
            Возврат;
        КонецПопытки;
        Эксель.Application.Quit();
    КонецЦикла;

Выдает ошибку {ВнешняяОбработка.ПД.Форма.Форма.Форма(56)}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Ошибка доступа к документу ‘Шаблон импорта платежных документов от 03.07.2017 12-44.xlsx’, допускающему доступ только для чтения. Файл не сохранен!

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Модератор

Эксперт 1С

3697 / 2897 / 569

Регистрация: 10.03.2011

Сообщений: 11,398

Записей в блоге: 1

13.07.2017, 19:59

2

Цитата
Сообщение от Ermak27
Посмотреть сообщение

допускающему доступ только для чтения

ответ в вопросе

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

13.07.2017, 20:46

 [ТС]

3

Dethmontt, как сделать, чтобы сохранить файл и открыть новый чтобы загрузка пошла дальше, потому что большее 1000 строк в БД

0

Модератор

Эксперт 1С

3697 / 2897 / 569

Регистрация: 10.03.2011

Сообщений: 11,398

Записей в блоге: 1

13.07.2017, 23:54

4

Ermak27, проверить если счетчик = 1000 повторить все что у тебя там происходит

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

14.07.2017, 11:09

 [ТС]

5

Dethmontt, мне не понятно куда вставить условие если

Добавлено через 8 минут
Dethmontt, мне нужно чтобы строки из БД заполнялись дальше в новом файле. Например в азе данных 2000 строк, добавляем файл excel, записали 1000 строк, файл сохранился и требует добавить следующий файл, я добавляю и продолжается запись до 2000 строк.

0

Эксперт 1С

3051 / 1998 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

14.07.2017, 11:15

6

Ermak27, у вас код рабочий вообще? Зачем вы предлагаете выбрать файл для каждой строки таблицы?)
Сделайте в цикле обхода Таб счетчик и заполняйте файл до значения 1000, потом обнуляете счетчик и создаете новый файл.

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

14.07.2017, 11:26

 [ТС]

7

GreenkA, Код у меня работает, только не сохраняет. Не могу понять как сделать, можете показать как.

0

Эксперт 1С

3051 / 1998 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

14.07.2017, 11:36

8

Ermak27, не сохраняет, выдавая ту ошибку выше? Вам же ответили, в чем дело. Вы выбираете для изменения файл с ограниченными правами — только чтение. Выбирайте другой, создавайте новый, сделайте что-нибудь)

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

14.07.2017, 11:59

 [ТС]

9

Все разобрался. Код правильный, просто файл был открыть в процессе

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

26.10.2017, 14:35

 [ТС]

10

Цитата
Сообщение от GreenkA
Посмотреть сообщение

Сделайте в цикле обхода Таб счетчик и заполняйте файл до значения 1000, потом обнуляете счетчик и создаете новый файл.

Добрый день! Можете подсказать как это сделать?

0

Эксперт 1С

3051 / 1998 / 524

Регистрация: 25.06.2009

Сообщений: 6,964

26.10.2017, 14:40

11

Ermak27, вы же написали, что решили задачу)3 месяца прошло…

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

26.10.2017, 14:44

 [ТС]

12

GreenkA, я проверил на файл где было 50000 строк, но до конца файл не до делал. Сейчас стал обрабатывать файл и смотрю что обработка не рабочая. Не могу понять почему все 3000 строк одно значение записывает и постоянно требует файл.

Добавлено через 2 минуты
Идея была такая, выгрузил справочник, получилось в таблице 2900 строк, мне нужно выгрузить в шаблон формата xls максимум 1000 строк. Я создаю 3 одинаковых шаблона и начинаю выгружать в них по 1000 строк, получается что два шаблона будет по 1000 строк а третий шаблон 900 строк.

0

Joker_vad

Эксперт 1С

476 / 413 / 93

Регистрация: 26.09.2012

Сообщений: 1,903

26.10.2017, 15:35

13

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    |   ЛицевыеСчетГИСЖКХ.КодЖКХ
    |ИЗ
    |   Справочник.ЛицевыеСчетГИСЖКХ КАК ЛицевыеСчетГИСЖКХ
    |ГДЕ
    |   ЛицевыеСчетГИСЖКХ.Регион = &Регион
    |   И НЕ ЛицевыеСчетГИСЖКХ.КодЖКХ = """""; 
    Запрос.УстановитьПараметр("Регион",Регион);
    Таб = Запрос.Выполнить().Выгрузить();
    
    НомерСтроки=3;
    НомерПД=0;
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";
    
    Если ДиалогВыбора.Выбрать() Тогда
        ИмяФайлаДанных = ДиалогВыбора.ПолноеИмяФайла;
    КонецЕсли;  
    
    Для Каждого Стр из Таб Цикл 
        Если НомерСтроки = 1000 Тогда
            НомерСтроки = 0;
            Попытка
                Книга.SaveAs(ИмяФайлаДанных); 
            Исключение
                Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); 
                Возврат;
            КонецПопытки;
            Эксель.Application.Quit();
            Попытка
                Эксель = Новый COMОбъект("Excel.Application"); 
            Исключение
                Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); 
                Возврат;
            КонецПопытки; 
            Книга=Эксель.Application.Workbooks.Open(ИмяФайлаДанных);
            
            Лист1 = Книга.WorkSheets(1);
            
        КонецЕсли;
        
        НомерСтроки=НомерСтроки+1;
        НомерПД=НомерПД+1;      
        Лист1.Cells(НомерСтроки, 1).Value =  Стр.КодЖКХ;
        Лист1.Cells(НомерСтроки, 2).Value =  "Текущий";             
        Лист1.Cells(НомерСтроки, 3).Value =  "ПД-"+НомерПД;
        Лист1.Cells(НомерСтроки, 4).Value =  Формат(Месяц,"ДФ=MM.yyyy");                
        Лист1.Cells(НомерСтроки, 5).Value =  "@";               
        Лист1.Cells(НомерСтроки, 12).Value =  "044525220";
        Лист1.Cells(НомерСтроки, 13).Value =  "40702810400010005163";
        Состояние("Кол-во= "+НомерПД);        
    КонецЦикла;
    Если не НомерСтроки = 0 Тогда
        Попытка
            Книга.SaveAs(ИмяФайлаДанных); 
        Исключение
            Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); 
            Возврат;
        КонецПопытки;
        Эксель.Application.Quit();
    КонецЕсли;

Правда не тестил

1

Ermak27

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

27.10.2017, 09:32

 [ТС]

14

Joker_vad, выдает ошибки
{ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Фо рма(693,17)}: Переменная не определена (Книга)
<<?>>Книга.SaveAs(ИмяФайлаДанных); (Проверка: Толстый клиент (обычное приложение))
{ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Фо рма(698,13)}: Переменная не определена (Эксель)
<<?>>Эксель.Application.Quit(); (Проверка: Толстый клиент (обычное приложение))

Добавлено через 17 часов 7 минут
Добавил в начала кода

1C
1
2
    Перем Книга;
    Перем Эксель;

выдает ошибку {ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Фо рма(1827)}: Значение не является значением объектного типа (SaveAs) Файл не сохранен!

0

Joker_vad

Эксперт 1С

476 / 413 / 93

Регистрация: 26.09.2012

Сообщений: 1,903

27.10.2017, 09:55

15

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Запрос=Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    |   ЛицевыеСчетГИСЖКХ.КодЖКХ
    |ИЗ
    |   Справочник.ЛицевыеСчетГИСЖКХ КАК ЛицевыеСчетГИСЖКХ
    |ГДЕ
    |   ЛицевыеСчетГИСЖКХ.Регион = &Регион
    |   И НЕ ЛицевыеСчетГИСЖКХ.КодЖКХ = """""; 
    Запрос.УстановитьПараметр("Регион",Регион);
    Таб = Запрос.Выполнить().Выгрузить();
    
    НомерСтроки=3;
    НомерПД=0;
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";
    
    Если ДиалогВыбора.Выбрать() Тогда
        ИмяФайлаДанных = ДиалогВыбора.ПолноеИмяФайла;
 Попытка
            Эксель = Новый COMОбъект("Excel.Application"); 
        Исключение
            Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); 
            Возврат;
        КонецПопытки; 
        Книга=Эксель.Application.Workbooks.Open(ИмяФайлаДанных);
        
        Лист1 = Книга.WorkSheets(1);
    КонецЕсли;  
    
    Для Каждого Стр из Таб Цикл 
        Если НомерСтроки = 1000 Тогда
            НомерСтроки = 0;
            Попытка
                Книга.SaveAs(ИмяФайлаДанных); 
            Исключение
                Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); 
                Возврат;
            КонецПопытки;
            Эксель.Application.Quit();
            Попытка
                Эксель = Новый COMОбъект("Excel.Application"); 
            Исключение
                Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!"); 
                Возврат;
            КонецПопытки; 
            Книга=Эксель.Application.Workbooks.Open(ИмяФайлаДанных);
            
            Лист1 = Книга.WorkSheets(1);
            
        КонецЕсли;
        
        НомерСтроки=НомерСтроки+1;
        НомерПД=НомерПД+1;      
        Лист1.Cells(НомерСтроки, 1).Value =  Стр.КодЖКХ;
        Лист1.Cells(НомерСтроки, 2).Value =  "Текущий";             
        Лист1.Cells(НомерСтроки, 3).Value =  "ПД-"+НомерПД;
        Лист1.Cells(НомерСтроки, 4).Value =  Формат(Месяц,"ДФ=MM.yyyy");                
        Лист1.Cells(НомерСтроки, 5).Value =  "@";               
        Лист1.Cells(НомерСтроки, 12).Value =  "044525220";
        Лист1.Cells(НомерСтроки, 13).Value =  "40702810400010005163";
        Состояние("Кол-во= "+НомерПД);        
    КонецЦикла;
    Если не НомерСтроки = 0 Тогда
        Попытка
            Книга.SaveAs(ИмяФайлаДанных); 
        Исключение
            Сообщить(ОписаниеОшибки()+" Файл не сохранен!"); 
            Возврат;
        КонецПопытки;
        Эксель.Application.Quit();
    КонецЕсли;

1

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

27.10.2017, 10:53

 [ТС]

16

Joker_vad, по просил выбрать файл, я выбрал, сразу же по просил пере сохранить его, я пере сохранил, и все. Открываю файл а они пустой, а где там 1000 строк?

0

Joker_vad

Эксперт 1С

476 / 413 / 93

Регистрация: 26.09.2012

Сообщений: 1,903

27.10.2017, 10:56

17

1C
1
Таб = Запрос.Выполнить().Выгрузить();

Сколько записей вернула?

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

27.10.2017, 10:57

 [ТС]

18

Joker_vad, в отладчике показало что в таб = 0

0

Эксперт 1С

476 / 413 / 93

Регистрация: 26.09.2012

Сообщений: 1,903

27.10.2017, 10:58

19

Ну тогда все адекватно отработало, у вас 0 строк к записи в эксель

0

4 / 4 / 0

Регистрация: 16.01.2013

Сообщений: 1,228

27.10.2017, 11:03

 [ТС]

20

Joker_vad, спасибо большое, буду разбираться.

Добавлено через 4 минуты
Joker_vad, я разобрался с пустой таблицей, но что то не так работает. В каждый раз идет пере записывания файла, а должен просить новый файл куда записывать следующую информацию или создавать копию файла

0

Профессионализм и отличная репутация разработчиков вовсе не является гарантией, что созданный ими программный продукт будет работать идеально, поскольку появление ошибок часто бывает связано с внешними факторами. Ошибка «Документ не сохранен» в Microsoft Excel относится как раз к таким случаям. На официальном сайте компании описываются возможные причины неполадки и предлагается несколько решений, но этот список далеко не полный.

Существуют также и другие причины, по которым Excel может не сохранять документ.

Ошибка «Документ не сохранен» в Microsoft Excel

Таковыми являются прерывание процесса сохранения, проблемы с сетью, аппаратные неисправности носителя и отсутствие у пользователя необходимых разрешений. Ниже мы рассмотрим их чуть более подробно, но перед этим стоит попробовать простой, но вполне эффективный способ.

Создайте в Excel новый документ и скопируйте в него всё содержимое файла, который не удается сохранить. Сохраните новый документ. Если проблема не устранена, переходим к следующим решениям.

Исключите прерывания

Ошибка «Документ не сохранен» появится, если в момент сохранения файла процесс был прерван нажатием клавиши Esc или вмешательством в него стороннего программного обеспечения. Попробуйте временно закрыть запущенные приложения, после чего сохраните документ.

Проверьте локальную сеть

Если проблема возникла при сохранении документа в сетевую папку, следует проверить работу локальной сети и само локальное подключение. Если с подключением всё в порядке, проверьте задержку при отправке данных по локальной сети, высокий пинг вполне может стать причиной ошибки при сохранении Excel-файла.

Проблемы с накопителем

Если документ сохраняется на внешний накопитель, убедитесь, что он определяется в системе и на него записываются файлы. Проверьте состояние файловой системы накопителя, просканируйте его на предмет поврежденных секторов.

Отсутствие прав на запись

Убедитесь, что папка, в которую вы сохраняете файл, имеет права на запись. С ошибкой сохранения чаще всего приходится сталкиваться пользователям, не имеющим прав администратора, сохранении файла в системные каталоги или каталоги, принадлежащие другому пользователю. Создайте отдельную папку на диске D и попробуйте сохранить документ в нее. Если нужно узнать имя владельца папки, зайдите в ее свойства и нажмите на вкладку «Безопасность» кнопку «Дополнительно».

Безопасность

Запустите Excel в безопасном режиме

Если не один из вышеперечисленных способов не помог, запустите второй экземпляр Excel в безопасном режиме. Для этого вызовите нажатием Win + R окошко быстрого запуска и выполните в нём команду excel /safe.

Excel в безопасном режиме

Будучи запущенным в безопасном режиме, редактор отключает все плагины и надстройки, которые могут работать некорректно. После этого скопируйте из отредактированного документа все данные, перенесите их во второй экземпляр Excel и сохраните обычным путем.

Загрузка…

Не удается записать файл Microsoft Excel на диск, при каждой попытке отображается сообщение об ошибке «Документ не сохранен»? Узнаем подробнее причины ошибки и как ее исправить?

Чем вызвана ошибка?

Существует несколько причин, из-за которых не сохраняется документ в Excel:

  1. Проблемы с оборудованием. Ошибка может возникнуть при сохранении на флешку или внешний жесткий диск, которые частично повреждены или файл не записывается из-за неполадок порта USB.
  2. Нестабильное подключение по сети. Если сохраняете таблицу Excel через интернет, возникают случаи, когда из-за нестабильного соединения доступ к общей папке прерывается.
  3. Отсутствуют разрешения на папку. Проблема возникает при сохранении документа в каталог, на который у пользователя нет разрешения на запись.

Чтобы не потерять набранный документ попробуйте его сохранить путем копирования в другой файл. Таким способом можно сохранить содержимое. Для этого создайте новую таблицу Excel, затем вернитесь к документу, который не сохраняется, выделите все содержимое и скопируйте нажатием на Ctrl + C.

Перейдите в новый документ, щелкните на верхнюю левую ячейку и нажмите Ctrl + V, чтобы вставить содержимое предыдущей таблицы. После в меню Файл нажмите на «Сохранить как», выберите локальное расположение на жестком диске компьютера. После сохранения перейдите к методам устранения неполадок.

Проверка сетевого подключения

Есть много случаев, когда не удается сохранить файл Excel в общей папке по локальной сети. Если сеть работает нестабильно, постоянно прерывается и ей свойственны большие задержки, то столкнетесь с ошибкой при сохранении.

Для проверки причастности сети, попробуйте записать какой-либо файл на сетевой ресурс с другого компьютера. Если это сделать не удастся, то проблема с сетевым подключением. В этом случае сохраните таблицу на жесткий диск (при его наличии) или флешку. Проверьте сетевые адаптеры на своем и удаленном компьютере, плотность контактов сетевых коннекторов при кабельном подключении и уровень сигнала по Wi-Fi.

Проблемы с оборудованием

Ошибка может возникнуть при повреждении жесткого диска или образования на нем сбойных секторов. Это происходит в случае, когда ранее записанный документ после редактирования не удавалось сохранить.

Если сталкиваетесь с сообщением при сохранении на внешний накопитель, то, возможно поврежден или возникли проблемы с USB портом. Попробуйте переключить устройство в другой USB порт и повторить попытку.

Проверка разрешений

Во многих случаях ошибка возникает при сохранении файла Excel в каталог, на который у текущего пользователя нет полного доступа. Каждая папка имеет свои разрешения, которые обычно предоставляются администратором (или владельцем). Доступ к системным каталогам ограничивается встроенной учетной записью. Также администратор может намерено изменить разрешения на пользовательские папки.

Для изменения разрешений нужно войти в Windows под учетной записью администратора, чтобы предоставить доступ обычному пользователю.

В проводнике (Win + E) перейдите в папку, в которую пытаетесь записать документ. Сделайте шаг назад и откройте каталог, в котором вложена эта папка. Щелкните на ней правой кнопкой мыши и выберите Свойства.

На вкладке Безопасность кликните на кнопку Дополнительно.

В окне дополнительных параметров безопасности нажмите на «Изменить». Здесь изменим владельца этой папки на учетную запись пользователя.

Нажмите на Дополнительно, затем на кнопку «Найти». Отобразится список, состоящий из всех групп пользователей. Найдите свою учетную запись и кликните на «ОК». В следующем окне нажмите на «ОК».

Отметьте флажком опцию «Заменить владельца подконтейнеров и объектов», чтобы вложенные каталоги изменили принадлежность. Таким образом, не придется выполнять весь процесс повторно для существующих подкаталогов.

Нажмите «Применить» и выйдите из окна свойств. Снова откройте вкладку Безопасность и щелкните на «Дополнительно».

Нажмите на кнопку «Добавить».

В следующем окне щелкните на «Выбрать субъект».

Отобразится окно выбора пользователей и групп. Щелкните на Дополнительно, затем на кнопку Найти. Укажите учетную запись и сохраните изменения.

Отметьте флажком опцию полного контроля и кликните на «ОК».

Отметьте флажком строку «Заменить все записи разрешений дочернего объекта наследуемыми» и кликните на «Применить».

После выполнения шагов появится полный доступ к каталогу, в который хотите сохранить таблицу.

Если продолжаете сталкиваться с ошибкой, попробуйте запустить офисный пакет в безопасном режиме. При таком запуске будут отключены все надстройки, которые могут вызвать неполадки.

Откройте окно «Выполнить» нажатием на Win + R и выполните команду:

excel /safe

Скопируйте данные из проблемного документа, а затем попробуйте сохранить новый файл в безопасном режиме. Таким образом, можно определить, препятствуют ли надстройки сохранению.

Если метод не работает, попробуйте запустить Windows в режиме чистой загрузки. В нем можно определить какой процесс или служба вызывают проблемы.

Microsoft Excel документ не сохранен? Проверьте надстройки стороннего разработчика и разрешения, убедитесь в наличии места на диске, попробуйте сохраниться с новым именем или в другое место, измените формат, отключите на ПК / ноутбуке антивирусную программу и убедитесь в наличии доступа. Ниже подробно рассмотрим, в чем могут быть причины такой ошибки, и как ее устранить.

Причины, почем не сохранен Microsoft Excel

Для начала выделим несколько причин, почему файл Эксель не сохраняется, хотя вы все делаете правильно. Этому может быть несколько объяснений:

  • надстройки сторонних разработчиков;
  • сбои в процессе сохранения;
  • отсутствие необходимых разрешений;
  • утрачено соединение с Microsoft Excel;
  • недостаток места на диске;
  • действие антивирусной программы;
  • отсутствие доступа;
  • длина пути больше 218 знаков;
  • нестабильное подключение к Сети (если документ Microsoft Excel не сохранен при работе через Интернет);
  • прочие проблемы.

Выше приведен основные причины, почему Эксель не сохраняет документ, что позволяет сделать выводы по дальнейшим шагам.

Что делать

Зная возможные проблемы, связанные с Microsoft Excel, можно принять решение по дальнейшим шагам.

С чего начать

В ситуации, когда не сохраняется файл Excel, специалисты рекомендуют начать с приведенных ниже действий.

Сохранитесь с новым именем:

  1. Войдите в «Файл» и жмите «Сохранить как…».
  2. Выберите другое имя.

Переместите первоначальный лист в новый документ:

  1. Откройте новый документ.
  2. Добавьте лист заполнителя с помощью Shift+F11.
  3. Сгруппируйте листы. Для этого жмите 1-й лист данных, а после зафиксируйте Shift и кликните на последний лист данных.
  4. Жмите на сгруппированные листы правой кнопкой мышки и «Переместить или скопировать».
  5. В перечне «В книгу» выберите «Новая книга».
  6. Жмите «ОК».

После этих действий активные листы перемещаются в новый документ.

Измените формат, если Эксель не дает сохранить файл:

  1. Жмите на «Файл».
  2. Выберите «Сохранить как».
  3. В перечне «Тип …» выберите формат, который будет отличаться от текущего. Попробуйте сохраниться в XLSM или XLSX.

Сохранитесь в другое место:

  1. Жмите «Файл».
  2. Выберите «Сохранить как».
  3. Впишите имя и выберите другое место, к примеру, съемный или второй диск.

Такой метод может выручить, если в Экселе не сохраняется документ из-за временных сбоев, большой длины файла, отсутствия разрешений, конфликт доступа и т. д.

Проверьте, будет ли сохранен документ Microsoft Excel в исходное место:

  1. Создайте файл Эксель.
  2. Войдите в «Файл» и «Сохранить как».
  3. В поле «Папка» жмите на папку, где хранится исходный файл.
  4. В поле «Имя файла» введите имя для нового документа Microsoft Excel.
  5. Выберите «Сохранить».

Если документ не сохранен, причиной может быть большая длина пути, конфликт доступа, дефицит свободного места и т. д.

Дополнительные шаги

Рассмотрим еще ряд шагов, что делать, если Microsoft Excel документ не сохранен. При этом каждое из указанных ниже действий может помочь в устранении ошибки.

Проверьте, будет ли Microsoft Excel сохранен в безопасном режиме

Распространенные причины, почему Эксель не сохраняет файл — конфликт с антивирусом, применение надстроек сторонних организаций и т. д. В таком случае попробуйте перезапустить Виндовс в Safe Mode и сохранитесь на локальный жесткий диск. Если для хранения книги применяется сетевая папка, перезапустите ОС в указанном выше режиме и с поддержкой сети. После этого проверьте, сохранен ли документ Microsoft Excel. Если все нормально, снова перезагрузитесь в обычном режиме и повторите действие.

При неудачном сохранении после стандартной загрузки, причина, скорей всего — пользовательская надстройка. Для решения проблемы удалите ее.

Закройте лишние приложения

Причиной, почему в Эксель документ не сохранен, может быть прерывание процесса. К примеру, при выполнении работы могла быть нажата кнопка Esc, или имело место вмешательство сторонней программы, аппаратный / программный сбой. Для решения проблемы временно закройте запущенные программы, а после попробуйте, будет ли сохранен документ Microsoft Excel или нет.

Проверьте работу сети

При появлении проблемы при добавлении Microsoft Excel в сетевую папку убедитесь в работе локальной сети. Если подключение работает корректно, проверьте пинг, который может быть причиной проблем.

Убедитесь в наличии места на диске

Банальная причина, почему не сохраняются документы Microsoft Excel — отсутствие места на диске. Если его недостаточно, программа не сможет завершить процесс и отобразит информацию о переполненности мест. В таком случае нужно очистить место и просканировать жесткий диск на факт ошибок.

Получите нужные разрешения

Если документ Microsoft Excel не сохранен, причиной может быть отсутствие прав на запись. Чаще всего ошибка возникает, если пользователь не имеет прав администратора. Попробуйте создать отдельную папку на «D» и сохраниться в нее. Если необходимы данные по владельцу папки, войдите в «Безопасность», а после жмите «Дополнительно».

Отключите временно антивирусное ПО

Если на ПК / ноутбуке установлен антивирус, он часто не дает сохранить Microsoft Excel и выдает сообщение об ошибки. Последняя может возникать из-за того, что некоторый антивирусный софт быстро сканирует документы, которые появляются на устройстве. Оно прерывает процесс, из-за чего и возникают ошибки. Чтобы убедиться в отсутствии конфликта, временно отключите антивирусное ПО. Если документ Microsoft Excel после этого был сохранен, значит, проблема в нем.

Отключите общий доступ

Трудности могут возникать из-за попытки одновременного сохранения Майкрософт Эксель двумя разными людьми. В таком случае нужно согласовать работу и получить единоличный доступ к исправлению.

Введите правильный путь

Если Microsoft Excel не удается сохранить файл, убедитесь в соответствии имени требованиям программы. Путь к сохраняемому / открываемому документу вместе с именем не должен быть больше 218 символов. В ином случае появляется сообщение об ошибке о недопустимости данных. Попробуйте изменить путь и имя.

Теперь вы знаете, почему Microsoft Excel документ не сохранен, в каких случаях появляются ошибки, и как их самостоятельно исправить. Для начала определитесь с проблемой, попробуйте ее устранить, а при необходимости используйте обходные пути.

В комментариях расскажите, какое решение вам подошло, и какие еще методы можно использовать, если Microsoft Excel не сохранен.

Отличного Вам дня!

Like this post? Please share to your friends:
  • Произведение чисел с условием в excel
  • Произошла исключительная ситуация 0x8002000b excel
  • Произведение чисел в excel формула
  • Произношение слова word на английском
  • Произведение с условиями в excel