Общее правило при работе с любыми внешними (по отношению к Axapta) объектами:
Следует избегать многосоставных конструкций. Со многими точками.
А в данном случае, нужно просто явно указать класс объекта, который будет выполнять обработку. В данном случае - чтение значение ячейки
X++:
static void checkExcell(Args _args)
{
FilePath path='';
container conFilter = ["Файл (*.xls)", "*.xls"];
SysExcelApplication exappl;
SysExcelCells excells;
SysExcelWorksheets exsheets;
SysExcelWorksheet exsheet;
int row;
real a,b;
// Добавчик
SysExcelCell excellOne;
SysExcelCell excellTwo;
;
path = WinAPI::getOpenFileName(0,conFilter,"", "Укажите файл ",'',"");
if (!path) return;
exappl = SysExcelApplication::construct();
exappl.workbooks().open(path);
exsheets = exappl.workbooks().item(1).worksheets();
exsheet = exsheets.itemFromNum(1);
excells = exsheet.cells();
for(row = 1;row<3;row++)
{
// Вот это надо сделать
excellOne = excells.item(row,1);
excellTwo = excells.item(row,2);
a = excellOne.value().double();
//info(strfmt('%1',a)); // строка 1
b = excellTwo.value().double();
info(strfmt('%1',a)); // строка 2
info(strfmt('%1',b));
}
exappl.quit();
}