Показать сообщение отдельно
Старый 15.12.2010, 11:54   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Common.reread() - альтернатива для findRecId?
Хочу поинтересоваться у общественности - на сколько "правомочно" использовать следующий приём?
X++:
static void JobTestCommonReread(Args _args)
{
    InventTable InventTable;
    InventTable InventTable2;
    RecId RecId;
    ;

    select firstonly InventTable;
    RecId = InventTable.RecId;

    InventTable2.RecId = RecId;
    InventTable2.reread();
    
    info(InventTable2.ItemId);
}
В сочитании с common.selectForUpdate такой подход может быть очень полезен. Например, можно, не вводя новые переменные, "перевыбрать" курсор для обновления:
X++:
    // myTable не выбирался для обновления, но нам понадобилось изменить в нём данные
    myTable.selectForUpdate(true);
    ttsbegin;
    myTable.reread();
    ... 
    myTable.update();
    ttscommit;
    myTable.selectForUpdate(false);
}