Бывает так, что хочешь обновить запись в апплете, но вместо этого получаешь сообщение «The selected record has been modified by another user». Да, неприятная ситуация. Можно было бы попробовать сделать ClearToQuery() и ExecuteQuery(), но тогда теряется некоторый контент.
Несколько вариантов как обновить запись в UI не потеряв контент.
Если БК основан на классе CSSBCBas то просто в PreInvokeMethod апплета можно написать:
if (MethodName == 'MyMethod') { this.BusComp().InvokeMethod('RefreshRecord'); }
Метод БК, основанного на классе CSSBCBase, «RefreshBusComp».
if (MethodName == 'MyMethod') { this.BusComp().InvokeMethod('RefreshBusComp'); }
Отличие от предыдущего метода только в том, что будет обновлена не одна запись, а все записи в текущем контексте запроса к БК.
в отличие от первых двух методов, сервис может обновлять как апплет так и БК. Причем не важно на каком классе основаны апплет и БК. Метод, который необходим «RefreshCurrentApplet»:
if(MethodName == 'MyMethod') { TheApplication().GetService('FINS Teller UI Navigation'). InvokeMethod('RefreshCurrentApplet', TheApplication().NewPropertySet(), TheApplication().NewPropertySet()); }
— Khokhlov.Anton 2014/12/26 17:10