Показать сообщение отдельно
Старый 15.09.2021, 10:07   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от ortin Посмотреть сообщение
Это такая защита от возможности передвинуть курсор?
Интересно стало. Можно ли как-то решить эту задачу.

Через обёртку великодушно предоставленную нам в Platform update 9 можно вызвать у курсора метод data и тем самым передать в него значения нужной записи.

X++:
[ExtensionOf(classstr(SalesPurchReport_RU))]
final class SalesPurchReport_RU_Extension
{
    protected void adjustDynamicData()
    {
        TmpSalesPurchReportLine_RU localDynamicData;
        ;

        next adjustDynamicData();
        
        localDynamicData.setTmpData(DynamicData);

        select firstonly forupdate localDynamicData
                order by Qty desc
                where localDynamicData.InternalId == header.InternalId;

        DynamicData.data(localDynamicData);
    }
}
Единственное, нужно понимать все последствия подмены данных в курсоре методом data. Для этого нужно понимать что вообще такое табличные переменные в Аксапте. Параметры и табличные переменные