есть файл эксель, открываю программно, хочу программно обновить(пересчитать) сводную таблицу на 1 первом листе, в vba код в одну строчку и успешно работает под excel:
Worksheets(1).PivotTables(1).PivotCache.Refresh
при открытии через 1с этот код не работает, ругается:
ФормаСписка.Форма(142)}: Поле объекта не обнаружено (PivotCache)
книга.Worksheets(1).PivotTables(1).PivotCache.Refresh();
вот код:
Попытка
эксель = Новый COMОбъект("Excel.Application");
эксель.visible=1;
Исключение
Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
путь="d:\Мусор\";
ИмяФайла=путь+"имя.xlsx";
Попытка
книга = эксель.WorkBooks.Open(ИмяФайла);
Исключение
Сообщить("Ошибка открытия файла Microsoft Excel." + ИмяФайла + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
КонецПопытки;
сообщить(книга.worksheets(1).PivotTables(1).name);
книга.Worksheets(1).PivotTables(1).PivotCache.Refresh();
цитата из справки по обьектной модели экселя:
===========================
Excel Developer Reference
PivotCache.Refresh Method
Causes the specified chart to be redrawn immediately.
Syntax
expression.Refresh
expression A variable that represents a PivotCache object.
Example
This example refreshes the PivotTable cache for the first PivotTable report on the first worksheet in a workbook.
Visual Basic for Applications
Worksheets(1).PivotTables(1).PivotCache.Refresh
===========================
почему не работает - подскажите пжста
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший