14.09.20 — 09:07
Запускаю обработку выгрузки в excel из 1с, выходит сообщение
Произошла исключительная ситуация (microsoft excel не может открыть или сохранить документы из-за нехватки памяти или места на диске)
хотя на диске много свободного места, почему такая ошибка выходит?
1 — 14.09.20 — 09:38
(0) Прикольно, комп у тебя, а вопрос на форуме.
1. Почисти temp системы и свой
2. Сходи к админу и поинтересуйся, что не так (как минимум, посмотри, что записано в журнале винды)
3. Проверь отладчиком выгрузку, может её циклит (совсем или на конкретных данных)
Можно наоборот.
2 — 14.09.20 — 09:38
{ВнешняяОбработка.ЗагрузкаВыгрузкаВExcel.Форма.Форма.Форма(102)}: Ошибка при вызове метода контекста (Add)
Excel.WorkBooks.Add().SaveAs(ПутьКФайлуВыгрузки);
по причине:
Произошла исключительная ситуация (Microsoft Office Excel): Microsoft Office Excel не может открыть или сохранить документы из-за нехватки памяти или места на диске.
• Чтобы освободить память, закройте ненужные программы или книги.
3 — 14.09.20 — 09:39
на сервере такая ошибка выходит
4 — 14.09.20 — 09:45
(2) ты пытаешься сохранить пустую книгу?
Проверь право доступа Пользователя сервера 1С к указанному пути
ПутьКФайлуВыгрузки — тут имя файла есть? Проверь гарантированное отсутствие пробелов в пути и имени файла
5 — 14.09.20 — 09:47
(2) «Excel.WorkBooks.Add().SaveAs(ПутьКФайлуВыгрузки);»
Пристрелить. Без жалости.
6 — 14.09.20 — 10:01
(5) ну, чего уж так сразу то. Может это заглушка проверить работоспособность
В интернетах пишут, что возможен конфликт разрядности 1с х64, а Офис х32
тут уж как-нить самостоятельно
7 — 14.09.20 — 10:02
да 1с 64 битная
8 — 14.09.20 — 10:04
8.3.17.1549
9 — 14.09.20 — 10:07
проверить отладчиком не могу sql server база, пытаюсь уставить тестовую файловую базу пишет лицензия не обнаружена
10 — 14.09.20 — 10:08
office 7
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 строк с базы данных. Вот мой код:
Выдает ошибку {ВнешняяОбработка.ПД.Форма.Форма.Форма(56)}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Ошибка доступа к документу ‘Шаблон импорта платежных документов от 03.07.2017 12-44.xlsx’, допускающему доступ только для чтения. Файл не сохранен!
__________________ 0 |
Модератор 3697 / 2897 / 569 Регистрация: 10.03.2011 Сообщений: 11,398 Записей в блоге: 1 |
|
13.07.2017, 19:59 |
2 |
допускающему доступ только для чтения ответ в вопросе 0 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
13.07.2017, 20:46 [ТС] |
3 |
Dethmontt, как сделать, чтобы сохранить файл и открыть новый чтобы загрузка пошла дальше, потому что большее 1000 строк в БД 0 |
Модератор 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 минут 0 |
3051 / 1998 / 524 Регистрация: 25.06.2009 Сообщений: 6,964 |
|
14.07.2017, 11:15 |
6 |
Ermak27, у вас код рабочий вообще? Зачем вы предлагаете выбрать файл для каждой строки таблицы?) 0 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
14.07.2017, 11:26 [ТС] |
7 |
GreenkA, Код у меня работает, только не сохраняет. Не могу понять как сделать, можете показать как. 0 |
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 |
Сделайте в цикле обхода Таб счетчик и заполняйте файл до значения 1000, потом обнуляете счетчик и создаете новый файл. Добрый день! Можете подсказать как это сделать? 0 |
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 минуты 0 |
Joker_vad 476 / 413 / 93 Регистрация: 26.09.2012 Сообщений: 1,903 |
||||
26.10.2017, 15:35 |
13 |
|||
Правда не тестил 1 |
Ermak27 4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
||||
27.10.2017, 09:32 [ТС] |
14 |
|||
Joker_vad, выдает ошибки Добавлено через 17 часов 7 минут
выдает ошибку {ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма.Фо рма(1827)}: Значение не является значением объектного типа (SaveAs) Файл не сохранен! 0 |
Joker_vad 476 / 413 / 93 Регистрация: 26.09.2012 Сообщений: 1,903 |
||||
27.10.2017, 09:55 |
15 |
|||
1 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
27.10.2017, 10:53 [ТС] |
16 |
Joker_vad, по просил выбрать файл, я выбрал, сразу же по просил пере сохранить его, я пере сохранил, и все. Открываю файл а они пустой, а где там 1000 строк? 0 |
Joker_vad 476 / 413 / 93 Регистрация: 26.09.2012 Сообщений: 1,903 |
||||
27.10.2017, 10:56 |
17 |
|||
Сколько записей вернула? 0 |
4 / 4 / 0 Регистрация: 16.01.2013 Сообщений: 1,228 |
|
27.10.2017, 10:57 [ТС] |
18 |
Joker_vad, в отладчике показало что в таб = 0 0 |
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 минуты 0 |
Профессионализм и отличная репутация разработчиков вовсе не является гарантией, что созданный ими программный продукт будет работать идеально, поскольку появление ошибок часто бывает связано с внешними факторами. Ошибка «Документ не сохранен» в Microsoft Excel относится как раз к таким случаям. На официальном сайте компании описываются возможные причины неполадки и предлагается несколько решений, но этот список далеко не полный.
Существуют также и другие причины, по которым Excel может не сохранять документ.
Таковыми являются прерывание процесса сохранения, проблемы с сетью, аппаратные неисправности носителя и отсутствие у пользователя необходимых разрешений. Ниже мы рассмотрим их чуть более подробно, но перед этим стоит попробовать простой, но вполне эффективный способ.
Создайте в Excel новый документ и скопируйте в него всё содержимое файла, который не удается сохранить. Сохраните новый документ. Если проблема не устранена, переходим к следующим решениям.
Исключите прерывания
Ошибка «Документ не сохранен» появится, если в момент сохранения файла процесс был прерван нажатием клавиши Esc или вмешательством в него стороннего программного обеспечения. Попробуйте временно закрыть запущенные приложения, после чего сохраните документ.
Проверьте локальную сеть
Если проблема возникла при сохранении документа в сетевую папку, следует проверить работу локальной сети и само локальное подключение. Если с подключением всё в порядке, проверьте задержку при отправке данных по локальной сети, высокий пинг вполне может стать причиной ошибки при сохранении Excel-файла.
Проблемы с накопителем
Если документ сохраняется на внешний накопитель, убедитесь, что он определяется в системе и на него записываются файлы. Проверьте состояние файловой системы накопителя, просканируйте его на предмет поврежденных секторов.
Отсутствие прав на запись
Убедитесь, что папка, в которую вы сохраняете файл, имеет права на запись. С ошибкой сохранения чаще всего приходится сталкиваться пользователям, не имеющим прав администратора, сохранении файла в системные каталоги или каталоги, принадлежащие другому пользователю. Создайте отдельную папку на диске D и попробуйте сохранить документ в нее. Если нужно узнать имя владельца папки, зайдите в ее свойства и нажмите на вкладку «Безопасность» кнопку «Дополнительно».
Запустите Excel в безопасном режиме
Если не один из вышеперечисленных способов не помог, запустите второй экземпляр Excel в безопасном режиме. Для этого вызовите нажатием Win + R окошко быстрого запуска и выполните в нём команду excel /safe.
Будучи запущенным в безопасном режиме, редактор отключает все плагины и надстройки, которые могут работать некорректно. После этого скопируйте из отредактированного документа все данные, перенесите их во второй экземпляр Excel и сохраните обычным путем.
Загрузка…
Не удается записать файл Microsoft Excel на диск, при каждой попытке отображается сообщение об ошибке «Документ не сохранен»? Узнаем подробнее причины ошибки и как ее исправить?
Чем вызвана ошибка?
Существует несколько причин, из-за которых не сохраняется документ в Excel:
- Проблемы с оборудованием. Ошибка может возникнуть при сохранении на флешку или внешний жесткий диск, которые частично повреждены или файл не записывается из-за неполадок порта USB.
- Нестабильное подключение по сети. Если сохраняете таблицу Excel через интернет, возникают случаи, когда из-за нестабильного соединения доступ к общей папке прерывается.
- Отсутствуют разрешения на папку. Проблема возникает при сохранении документа в каталог, на который у пользователя нет разрешения на запись.
Чтобы не потерять набранный документ попробуйте его сохранить путем копирования в другой файл. Таким способом можно сохранить содержимое. Для этого создайте новую таблицу 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, специалисты рекомендуют начать с приведенных ниже действий.
Сохранитесь с новым именем:
- Войдите в «Файл» и жмите «Сохранить как…».
- Выберите другое имя.
Переместите первоначальный лист в новый документ:
- Откройте новый документ.
- Добавьте лист заполнителя с помощью Shift+F11.
- Сгруппируйте листы. Для этого жмите 1-й лист данных, а после зафиксируйте Shift и кликните на последний лист данных.
- Жмите на сгруппированные листы правой кнопкой мышки и «Переместить или скопировать».
- В перечне «В книгу» выберите «Новая книга».
- Жмите «ОК».
После этих действий активные листы перемещаются в новый документ.
Измените формат, если Эксель не дает сохранить файл:
- Жмите на «Файл».
- Выберите «Сохранить как».
- В перечне «Тип …» выберите формат, который будет отличаться от текущего. Попробуйте сохраниться в XLSM или XLSX.
Сохранитесь в другое место:
- Жмите «Файл».
- Выберите «Сохранить как».
- Впишите имя и выберите другое место, к примеру, съемный или второй диск.
Такой метод может выручить, если в Экселе не сохраняется документ из-за временных сбоев, большой длины файла, отсутствия разрешений, конфликт доступа и т. д.
Проверьте, будет ли сохранен документ Microsoft Excel в исходное место:
- Создайте файл Эксель.
- Войдите в «Файл» и «Сохранить как».
- В поле «Папка» жмите на папку, где хранится исходный файл.
- В поле «Имя файла» введите имя для нового документа Microsoft Excel.
- Выберите «Сохранить».
Если документ не сохранен, причиной может быть большая длина пути, конфликт доступа, дефицит свободного места и т. д.
Дополнительные шаги
Рассмотрим еще ряд шагов, что делать, если 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 не сохранен.
Отличного Вам дня!