Есть некая поисковая логика по кастомерам. В конце поиска отображается форма с результатом. Датасоурс - CustTable. Результат по сути выполненный квери над этим дэйтасоурсом. В гриде есть поле City - оно замаплено на дисплей метод. Код дисплей метода:
X++:
display AddressCity City()
{
;
if (useDeliveryAddress)
{
return Address::find(tablenum(CustTable),CustTable.RecId,AddressType::Delivery).City;
}
else
{
return CustTable.City;
}
}
Где useDeliveryAddress - параметр, указывающий на то, что при поиске был выставлен параметр искать по деливери адресу. То есть если пользователь указал в поисковом диалоге город и отметил эту опцию - будут искаться те кастомеры у кого такой город в адресе доставки.
В чем собственно проблема - когда рекорд активен город отображается корректно. Но когда курсор перемещается на другой рекорд значение City в строке грида, потерявшей фокус меняется на значение из другого рекорда, причем зачастую произвольным образом. То на значение из предидущего, то из следующего. Кто что скажет?