Показать сообщение отдельно
Старый 12.03.2018, 18:49   #6  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Извините, просто сложилось впечатление, что вы не на 100% понимаете, как все эти reread, refreshEx и т.п. методы работают, решил подбросить ссылку.
Если research работает, как насчет запомнить выделенные записи перед вызовом research, а потом выделить их из кода?
X++:
void clicked()
{
    Table1 table1Local;
    Table1 table1ForUpdate;
    MultiSelectionHelper helper = MultiSelectionHelper::construct();
    Set selectedRecords = new Set(Types::Record);    
    SetEnumerator selectedRecordEnumerator;
    
    helper.parmDatasource(Table1_ds);

    table1Local = helper.getFirst();

    while (table1Local.RecId != 0)
    {
        selectedRecords.add(table1Local.data());
        
        ttsBegin;

        select firstonly forUpdate table1ForUpdate
            where table1ForUpdate.RecId == table1Local.RecId;

        table1ForUpdate.Field1 = 'some value';
        table1ForUpdate.update();

        ttsCommit;

        table1Local = helper.getNext();
    }

    Table1_ds.research();
    
    selectedRecordEnumerator = selectedRecords.getEnumerator();
    while (selectedRecordEnumerator.moveNext())
    {
        table1Local = selectedRecordEnumerator.current();
        Table1_ds.findRecord(table1Local);
        Table1_ds.mark(true);
    }
}