Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как изменить существующий файл Excel из 1С?

Как изменить существующий файл Excel из 1С?
Я
   Prog111
 
09.09.18 - 11:09
Вроде все примеры перебрал, а всё равно не получается...
Сделал обработку, в которой выбирается имя открываемого файла Excel (ИмяФайлаЗагрузки). Открываю существующий файл, считываю его, сравниваю с базой, и если цены в базе не сходятся с ценами в файле, то меняю цены и пытаюсь записать файл Excel, но выходит ошибка:

 Ошибка при вызове метода контекста (SaveAs)
    КнигаЗагрузки.SaveAs(НовыйФайл);
по причине:
Произошла исключительная ситуация (Microsoft Office Excel): Метод SaveAs из класса Workbook завершен неверно

Сама процедура:

&НаСервере
Процедура ИзменитьЦеныНаСайтеНаСервере()
    
    Эксель = Новый COMОбъект("Excel.Application");    
    КнигаЗагрузки = Эксель.WorkBooks.Open(ИмяФайлаЗагрузки); 
    НомерЛиста = 1;
    Лист = КнигаЗагрузки.WorkSheets(НомерЛиста);
    
    Для Каждого Строка Из Номенклатура Цикл
        Если Строка.ИзменитьЦенуНаСайте = Истина Тогда
            Если Строка.Номенклатура = ПолучитьСпрНомПустой() Тогда
                Сообщить("Пустая ссылка: " + Строка.НаименованиеЭксель);
            Иначе
                Лист.Cells(Строка.НомерСтрокиЭксель, 16).Value = Строка.ЦенаВБазе;        
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    
    // Сохранение файла

    ФайлЭксель = Новый Файл(ИмяФайлаЗагрузки);
    Путь = ФайлЭксель.Путь;
    НовыйФайл = Новый Файл(Путь + "new.xlsx");// + ФайлЭксель.Имя);

    КнигаЗагрузки.SaveAs(НовыйФайл);
    
КонецПроцедуры


База файловая.
 
 
   Cool_Profi
 
1 - 09.09.18 - 11:13
Сообщить(НовыйФайл) что говорит?
   HawkEye
 
2 - 09.09.18 - 11:27
(0) вторым параметром надо формат передавать...
   HawkEye
 
3 - 09.09.18 - 11:28
-4143 - формат по умолчанию, если я ничего не путаю..
   Prog111
 
4 - 09.09.18 - 11:33
(3) Поменял на:

КнигаЗагрузки.SaveAs(НовыйФайл,-4143);

Но результат тот же...
   Prog111
 
5 - 09.09.18 - 11:34
(1) В отладчике это нормальный файл, с параметрами:
ПолноеИмя - "C:\Обработки 1С\new.xlsx"
   Cool_Profi
 
6 - 09.09.18 - 11:44
   Prog111
 
7 - 09.09.18 - 11:46
(6) Да в том-то и дело, то база файловая. Описанные проблемы вроде не подходят...
   Sasha_H
 
8 - 09.09.18 - 13:28
А если переделать открытие Екселя не СОМ-объектом, а через ТабличныйДокумент?
   Sasha_H
 
9 - 09.09.18 - 13:29
(0) Попробуй поменять на:

Эксель.SaveAs(НовыйФайл);
   RomanYS
 
10 - 09.09.18 - 18:14
>>    НовыйФайл = Новый Файл(Путь + "new.xlsx")// + ФайлЭксель.Имя);

>>    КнигаЗагрузки.SaveAs(НовыйФайл);

А что эксель уже научился понимать объекты 1С? Зачем экселю объект "файл", ему только путь нужен.
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует