Задача - запретить удаление выполненных операций всем пользователям, кроме нескольких определенных.
Что делаю - на событие OnDatasetBeforeDelete для ds_Cashflow в скрипте ds_CashflowScript пишу функцию
function SelfOnDatasetBeforeDelete(Dataset) {
ContactID = Connector.CurrentUser.ContactID ;
CashflowScript.StatusID = GetFieldValueFromDisabledField(Dataset, 'StatusID');
if (CashflowScript.StatusID=='{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}'){
if (ContactID != '{32E85247-DE68-4C6A-B032-06F5CDFB2B3A}' &&
ContactID != '{E2093D56-49ED-4D4D-B69E-C9FF0623DE95}' &&
ContactID != '{ED75744C-BC2C-469C-8993-8473E23E7F06}' &&
ContactID != '{14925854-AAFD-4516-8A23-F2B5312F4C63}'){
ShowInformationDialog('У Вас нет прав удалять выполненную операцию');
return;
}
}
}
В результате - сообщение появляется когда положено (в момент удаления) и для кого положено (для всех пользователей , кроме четырех), но потом удаление все же происходит.
Как исправить?