Привет всезнающий ALL
AX3SP3KR3 MSSQL2005
X++:
static void ggvdimensions(Args _args)
{
LedgerJournalTrans ledgerJournalTrans;
Common thisCommon;
DictTable DictTable;
FieldId fieldId;
int i, j;
str ret;
str value;
;
//берем любую запись ledgerjournaltrans
select ledgerJournalTrans
where ledgerJournalTrans.RecId == 17816743;
thisCommon = ledgerJournalTrans;
DictTable = new DictTable( thisCommon.TableId);
for( i=1; i<=dictTable.fieldCnt(); i++)
{
fieldId = dictTable.fieldCnt2Id(i);
if( dimof( thisCommon.(fieldId)) > 1)
{
for( j = 1; j<= dimof( thisCommon.(fieldId)); j++)
{
value += value ? "-" : "";
//НЕ РАБОТАЕТ
value += strfmt( "%1", thisCommon.(fieldId)[j]);
}
}
else value = strfmt( "%1", thisCommon.(fieldId));
ret += strfmt( "%1 : %2;", fieldId2Name( thisCommon.TableId, fieldId), value);
}
info( ret);
}
Не работает конструкция strfmt( "%1", thisCommon.(fieldId)[i]); с сообщением "Ошибка времени выполнения : Неправильный тип аргумента функции". Причем, сообщение не во время компиляции, а во время выполнения
И более общий вопрос...Каким же образом доступится к элементам поля, который является массивом ( пример dimension) в общем случае (не приводя к определенному типу).