Еще одна недоработочка проявилась уже в CU10: на форме заявок на оплату, в строках попытка выбрать значение фин.аналитики из lookup приводит к ошибке "QueryBuildDataSource Объект не инициализирован" с трассировкой стека:
Код:
(C)\Classes\LedgerDimensionController\restrictQueryToTreeValuesForHierarchy - line 167
(C)\Classes\LedgerDimensionController\restrictQueryToTreeValues - line 58
(C)\Classes\CFMDimensionController\getAutoCompleteValidQuery - line 37
(C)\Classes\CFMDimensionController\getAutoCompleteDataFromDatabase - line 84
(C)\Classes\CFMDimensionController\loadAutoCompleteData - line 56
(C)\Forms\CFMPaymentRequest\Designs\DesignList\Dimension_LedgerDimension\Methods\loadAutoCompleteData - line 5
Проблема кроется в методе \Classes\CFMDimensionController\getControlIndexByDimensionAttribute, где, похоже, забыли написать кусок кода:
X++:
public int getControlIndexByDimensionAttribute(RecId _dimensionAttributeId)
{
int controlIndex;
int dimCount;
int i;
for (i = 1; i <= dimCount; i++)
{
if (dimStorage.getAttributeIdForSegment(i) == _dimensionAttributeId)
{
return controlIndex;
}
}
return 0;
}
Очевидно, что метод в таком виде всегда будет возвращать 0. Ожидается, что он будет искать номер нужного сегмента в FormSegmentedEntryControl.