![]() |
#1 |
Участник
|
Непонятный Id у поля
Добрый день!
Выполняю приведенный ниже код, у таблицы InventDim fieldId поля InventLocationId принимает некое странное значение, не соответствующее имеющемуся в таблице. Если же использовать закомментированный код, все работает. Хотелось бы понять причину. X++: for(i=1; i<=qbdsInventDim.rangeCount(); i++) { qbr = qbdsInventDim.range(i); if( qbr.field() == fieldnum(InventDim, InventLocationId) && //fieldid2name(qbr.table(), qbr.field()) == fieldid2name(tablenum(InventDim), fieldnum(InventDim, InventLocationId)) && qbr.value() ) { queryRunSum.query().dataSourceTable(tablenum(InventSumDateFinancialDim_RU)).addRange(fieldnum(InventSumDateFinancialDim_RU, InventLocationId)).value(qbr.value()); } } |
|
![]() |
#2 |
Участник
|
Возможно у вас расширенный ид используется.
см. fieldExt2Id fieldExt2Idx fieldId2Ext класса Global |
|
|
За это сообщение автора поблагодарили: byte (1). |
![]() |
#3 |
Участник
|
А у вас qbr.table() равен tablenum(InventDim)?
|
|
![]() |
#4 |
Участник
|
|
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
По-моему qbr.field() возвращает расширенный id
Попробуйте оперировать fieldExt2Id( qbr.field() ) - его уже можно сравнивать с результатом fieldNum(...) |
|
![]() |
#7 |
Участник
|
опоздал
![]() В диалогах используется расширенный идентификатора. видимо чтобы отделять индексные поля одни от других. т.е. Dimension[1] и Dimension[2] будут иметь разные расширенные ид |
|
![]() |
#8 |
Участник
|
Спасибо!
|
|