Страница 1 из 1

Настройка прав доступа по условию

Добавлено: 06 июн 2007, 14:35
Vik
Необходимо сделать, чтобы определенные пользователи не могли править проводки после определенной даты. Сделал в саппорте (5.1.33) в Правах по условиям фильтр: OBOROT.DATOB <= 31/09/2006, права только чтение (R---), пересчитал права, зашел в галактику(8.0) под пользователем, для которого настраивал - условие не работает, могу менять проводки за любую дату. Пробовал даже убрав все права - тоже ничего не изменилось. Что-то не так делаю?

Добавлено: 06 июн 2007, 14:48
Nikos
Если дает менять проводки после того, как все права убраны - значит либо они не пересчитаны, либо, если пользователь входит в группы, используются права для какой-то группы. А вообще нужно дать пользователю права на чтение данной таблицы в общем списке таблиц, а уже на изменение - в правах по условию.

Добавлено: 06 июн 2007, 15:24
thor
Постройте в саппорте отчет по правам пользователя на таблицы и посмотрите, какие реально у него права на Oborot.
Если даете ему права по условиям на таблицу с правами Read Only, то нужно, чтобы у него нигде ни в личных правах, ни в групповых, членом которых он явялется, вообще не было прав на Oborot

Добавлено: 07 июн 2007, 06:46
san
если заработает, можно будет менять дату проводки, а потом править любые другие поля, после чего вернуть прежнюю дату :eek:

Добавлено: 07 июн 2007, 07:56
hope
Мы для этого просто закрываем опер контур и бух контур.

Добавлено: 07 июн 2007, 08:47
san
"Настройки "Галактики"\Бухгалтерский контур\Модификации данных после закрытия периода" = запрещать
"Настройки "Галактики"\Бухгалтерский контур\Закрытый отчетный период до" = требуемая дата

Добавлено: 20 авг 2007, 14:42
Vik
san писал(а):если заработает, можно будет менять дату проводки, а потом править любые другие поля, после чего вернуть прежнюю дату :eek:
Да, есть такое дело, только вот прежнюю дату вернуть уже не дает :eek:

san писал(а): "Настройки "Галактики"\Бухгалтерский контур\Модификации данных после закрытия периода" = запрещать
"Настройки "Галактики"\Бухгалтерский контур\Закрытый отчетный период до" = требуемая дата
Этот вариант известен, но он не совсем подходит, так как закрывать надо для отдельных счетов

Добавлено: 20 авг 2007, 14:51
Ged
если заработает, можно будет менять дату проводки, а потом править любые другие поля, после чего вернуть прежнюю дату
San прав.. По крайней мере на прежних версиях проверка шла только перед вставкой. Старое значение не проверялось.
попробуйте прикрутить тригер на OBOROT

Добавлено: 20 авг 2007, 15:34
Ged
Нечто вроде этого

Код: Выделить всё

handler Oborot_tgrU on trigger Oborot before update [100]
Action
{
 var buf : record as table Oborot;
 var dD  : Date;
 dD:=Date(30,09,2006);
 GetTableBuffer(buf);
 if(buf.Datob<=dD And (buf.DBSCHETO='70' Or buf.KRSCHETK='70'))
  {result:=false;
Message('Запрещено модифицировать проводки по счету 70 до '+DateToStr(dD,'DD.MM.YYYY'));
  }
 else
  Result := true;
}
Rollback
{
}