08.04.2010, 11:00 | #1 |
Участник
|
Ошибка чтения файлов XLS под Windows 7
Такая ситуация. Может кто встречался. Аксапта версии 4.0 SP2. Есть у нас несколько функций по загрузке в Аксапту чего-либо из файлов Excel. Например, накладных поставщиков. Все эти файлы присылаются в версиях Excel не выше 2003. Все эти загрузки великолепно работают на компах под WinXP. И вот стали у нас ставить новые компы с предустановленной Windows 7. Поставили мы туда 2007 офис. И стала в этих загрузках появляться плавающая ошибка:
Код: Error Сообщение (13:28:19) Ошибка времени выполнения: Метод был вызван с недопустимым числом параметров. Причем, в том же 2007 офисе, установленном на WinXP, ошибки нет. А на Windows 7 ошибка есть. Установка 2003 офиса на тот же Windows 7 не помогает, дает ту же ошибку. Чего-то значит сломалось в Windows 7, похоже в каких-то библиотеках по работе с com-объектами. Стек вызовов такой (название нашего класса опускаю, даю стек начиная со стандартных классов по работе с excel: Код: Трассировка стека (C)\Classes\COM\value (C)\Classes\SysExcelCell_XP\value - line 12 (C)\Classes\SysDataExcelCOMFree\readRow - line 38 (C)\Classes\SysDataExcelCOM\read - line 11 (C)\Classes\SysDataImportExcel\read - line 3 (C)\Classes\SysDataImportDefBase\importFilename - line 38 (C)\Classes\SysDataImportExcel\importFilename - line 6 (C)\Classes\SysDataImportDefBase\import - line 23 (C)\Classes\SysDataImportExcel\import - line 10 (C)\Classes\SysDataImportDefBase\run - line 5 Код метода, где появляется ошибка: X++: public COMVariant value(anytype _value = COMArgument::NoValue) { COMVariant ret; ; if (!prmisdefault(_value)) { ret = cell.value(#xlRangeValueDefault,_value); } else { ret = cell.value(#xlRangeValueDefault); // ВОТ В ЭТОЙ СТРОКЕ ПОЯВЛЯЕТСЯ ОШИБКА } return ret; } Последний раз редактировалось Zabr; 08.04.2010 в 11:05. |
|
|
За это сообщение автора поблагодарили: Logger (1). |
Теги |
.net, ax2009, ax4.0, com-объект, excel, импорт данных, импорт файла |
|
|