Имя: Пароль:
1C
1С v8
Обработка Excel файла
0 Cancell
 
06.09.18
11:47
Всем доброго дня, помогите с проблемкой:

Формирую прайс, сохраняю его в эксель -
        ТабДок.Записать(ПутьКФайлуВыгрузки,ТипФайлаТабличногоДокумента.XLSX);

После этого его заново открываю и обрабатываю

    //Создаем подключение к Excel
    Попытка
        Excel = Новый COMОбъект("Excel.Application");
    Исключение  
        Сообщить("MS Excel не установлен на компьютере!",10);
        Возврат;
    КонецПопытки;
    
    //Открываем файл
    Если Не ПроверитьСуществованиеФайла(Путь) Тогда
        Сообщить("Невозможно открыть файл, проверьте наличие файла по указанному пути!");
        Возврат;
    КонецЕсли;
    
    Excel.Workbooks.Open(Путь);
    
    //Открываем активную книгу
    Книга = Excel.ActiveWorkbook;    
    
    СтраницаСНоменклатурой = Excel.Sheets(1);

провожу манипуляции с ячейками и сохраняю -

        Книга.SaveAs(Путь,-4143);

но при открытии эксель ругается -
"не удалось открыть файл 111.xlsx так как формат или расширение этого файла являются недопустимыми. Убедитесь, что файл не поврежден и расширение его имени соответствует формату.

В чем проблема? Причем до обработки он открывается нормально, что-то происходит с ним когда я его открываю для обработки и сохраняю... пробовал даже убирать все своим манипуляции с ячейками и просто открывал и сохранял.
1 Cancell
 
06.09.18
11:54
Если работать с XLS то падает на

Книга.SaveAs(Путь,-4143);

с ошибкой

{ВнешняяОбработка.ФормированиеПрайса.Форма.ФормаУправляемая.Форма(2916)}: Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Документ не сохранен.
2 Chikko
 
06.09.18
12:02
Попробуй 1) Убрать формат -4143 2) используй просто save, зачем сейв эс и тот же файл?
3 Cancell
 
06.09.18
12:08
(2) та же фигня
   {ВнешняяОбработка.ФормированиеПрайса.Форма.ФормаУправляемая.Форма(2917)}: Ошибка при вызове метода контекста (Save): Произошла исключительная ситуация (Microsoft Excel): Документ не сохранен.
4 MaxS
 
06.09.18
12:13
А что за манипуляции с ячейками? Готовый файл не используя Excel, в 1С-е нельзя создавать?
5 catena
 
06.09.18
12:14
xlsx и -4143 не конфликтуют?
6 shadow_sw
 
06.09.18
12:18
сделай просто Книга.Save;
7 shadow_sw
 
06.09.18
12:18
Save(); ошибка в (6)
8 Cancell
 
06.09.18
12:35
(4) формулы, ссылки, защита... но даже если их комментирую а простооткрываю и сохраняю то ошибка
9 Cancell
 
06.09.18
12:36
(5) нет, но файл потом не открывается

"не удалось открыть файл 111.xlsx так как формат или расширение этого файла являются недопустимыми. Убедитесь, что файл не поврежден и расширение его имени соответствует формату.
10 catena
 
06.09.18
12:40
(9)По-вашему это совсем не похоже на конфликт?
11 Малыш Джон
 
06.09.18
12:46
(0) видимо как-то хреново он у тебя его сохраняет.

Если просто создать файл и потом в экселе его открыть, он откроется?
12 Вафель
 
06.09.18
12:46
а если просто открыть в екселе сохраненный файл?
13 Cancell
 
06.09.18
13:07
если после

ТабДок.Записать(ПутьКФайлуВыгрузки,ТипФайлаТабличногоДокумента.XLSX);

то файл открывается нормально, а после открытия через комобъект и сохранения уже не открывается
14 Cancell
 
06.09.18
13:08
(10) если включить алерты то есть сообщение что формат не соответствует и предлает сохранить в xls, но в итоге не сохраняет нормально.
15 catena
 
06.09.18
13:35
(14)Зачем там вообще второй параметр? И что говорит простой Save() без параметров?
16 Garykom
 
гуру
06.09.18
13:41
"ТабДок.Записать(ПутьКФайлуВыгрузки,ТипФайлаТабличногоДокумента.XLSX);" - держит файл часто до закрытия сеанса 1С

При открытии через OLE Excel и записи получаются глюки.
17 Garykom
 
гуру
06.09.18
13:42
(16)+ Делай копирование+переименование файла после записи из ТабДок и перед открытием Excel.
18 Garykom
 
гуру
06.09.18
13:43
Другой вариант какие то нестыковки с форматами/версиями Excel'я и xls(x)
19 ptiz
 
06.09.18
13:56
(9) см.5
https://msdn.microsoft.com/ru-ru/vba/excel-vba/articles/xlfileformat-enumeration-excel
Откуда такое упорство сохранять в формате xlWorkbookNormal (т.е. xls), но с расширением xlsx ?
20 Cancell
 
06.09.18
15:18
(19) СПАСИБО БОЛЬШОЕ!
Вот где собака порылась :)
В итоге табдок сохраняю в XLSX а потом после обработки файла делаю - Книга.SaveAs(Путь,51);