А если в формуле запятые на точки с запятой поменять? Думаю, в этом дело. Внес исправления в джоб - попробуйте еще раз. Появился такой фрагмент:
X++:
str strFormula;
COMVariant sep;
..........
xlApp = new COM('Excel.Application');
// создаем формулу с правильным разделителем списка (запятой или точкой с запятой)
sep = xlApp.International(#xlListSeparator);
strFormula = strFmt('=CONCATENATE(RC[-10]%1RC[-9]%1RC[-8]%1RC[-7]%1RC[-6]%1RC[-5]%1RC[-4]%1RC[-3]%1RC[-2]%1RC[-1])',
sep.bStr());
..........
fld = flds.Item('str11'); fld.Value(strFormula);
У меня в хозяйстве есть даже отдельный статический метод (для Global):
X++:
// определение разделителя списка Excel
// нужно для диапазонов вида Range('C:C,F:F')
// Excel берем параметром из контекста задачи,
// чтобы не загружать отдельную сессию из-за единственного символа
static str excelListSeparator(COM _excelApplication)
{
#define.xlListSeparator(5)
COMVariant sep = _excelApplication.International(#xlListSeparator);
;
return sep.bStr();
}