Показать сообщение отдельно
Старый 28.05.2012, 07:17   #13  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
376 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Насчет полей modifiedBy\modifiedTransactionId - у меня система ведет себя так :

Если обновлять поля из джоба\класса и перед обновлением запускать поиск, обновляемого курсора, как в примере ниже, то значения указанных полей просто затираются
X++:
static void checkSystemFieldOverWrite(Args _args)
{
    CustTable   custTable;
    ;

    ttsbegin;

    custTable = CustTable::find('4000', true); 

    new OverwriteSystemfieldsPermission().assert();
    custTable.overwriteSystemfields(true);
    //custTable.(fieldNum(CustTable, modifiedDateTime))   = DateTimeUtil::newDateTime(19\05\2012, 0);
    //custTable.(fieldNum(CustTable, createdDateTime))    = DateTimeUtil::newDateTime(19\05\2012, 0);
    custTable.(fieldNum(CustTable, modifiedBy))             = 'test';
    custTable.(fieldNum(CustTable, ModifiedTransactionId))  = 444444;
    custTable.City = 'check';
    custTable.update();

    CodeAccessPermission::revertAssert();

    ttscommit;

    info("done");
}
Если обновить запись, которая находится непоcредственно на форме(при этом не разрывать связь с ДС), то значения полей меняются :

X++:
static void main(Args  _args)
{
    CustTable   custTable;
    ;

    custTable = _args.record();
    new OverwriteSystemfieldsPermission().assert();
    custTable.overwriteSystemfields(true);
    //custTable.(fieldNum(CustTable, modifiedDateTime))   = DateTimeUtil::newDateTime(19\05\2012, 0);
    //custTable.(fieldNum(CustTable, createdDateTime))    = DateTimeUtil::newDateTime(19\05\2012, 0);
    custTable.(fieldNum(CustTable, modifiedBy))             = 'test';
    custTable.(fieldNum(CustTable, ModifiedTransactionId))  = 444444;
    custTable.City = 'check';
    custTable.update();

    CodeAccessPermission::revertAssert();
}
__________________
Sergey Nefedov