Всем привет!
Стоит задача раздать права на фин. операции, в зависимости от неких условий...
Делаю так:
var DatasetCFR = Services.GetNewItemByUSI("ds_CashflowRight");
ApplyDatasetFilter(DatasetCFR,'RecordID',Dataset.ValAsGUID('ID'),true);
DatasetCFR.Open();
if(!IsDatasetEmpty(DatasetCFR))
{
DatasetCFR.GotoFirst();
while(!DatasetCFR.IsEOF)
{
DatasetCFR.Delete();
}
}
// Назначаем новые
// Финансы общий
DatasetCFR.Append();
DatasetCFR.ValAsGUID('RecordID') = Dataset.ValAsGUID('ID');
DatasetCFR.ValAsGUID('AdminUnitID') = '{6061DEFD-9679-4DB0-9F41-C22DB7692991}';
DatasetCFR.Values('CanRead') = 1;
DatasetCFR.Values('CanWrite') = 0;
DatasetCFR.Values('CanDelete') = 0;
DatasetCFR.Values('CanChangeAccess') = 0;
DatasetCFR.Post();
Вот удаление прав проходит, а при добавлении вылетает ошибка:
[10.01.29 14.30.08.875] (E) Ошибка выполнения метода 'SelfOnDatasetAfterPost'. Ошибка сохранения записи. Оригинальное сообщение об ошибке: Текущий пользователь не имеет достаточно прав для добавления записей в таблицу 'vw_CashflowRight' «Call Stack»
В энтерпрайз мэнеджере права на vw_CashflowRight и tbl_CashflowRight даны всем! Через SQL навигатор всё добавляется. Смотрю по SQL Profiler... террасофт даже запрос на вставку не посылает!!!
В чём ошибка? Как можно решить эту задачу?
Раздавать права через администрирование не предлагать, т.к. права задаются на основе данных
Под админом всё работает!
Версия 3,2
Спасибо!