Роли и права доступа Господа и дамы, парни и девчата! Есть вот такой кусок кода: //Откроем форму только для просмотра если нет прав на редактирование Если РольДоступна("Администратор") = Ложь И РольДоступна("МДМ_Администратор") = Ложь Тогда ЭтаФорма.Элементы.Список.ТолькоПросмотр = Истина; КонецЕсли; Проблема заключается в том, что у пользователя, у которого эти роли точно есть - эти два условия говорят "Нет" и форма закрывается таки для редактирования. Вопрос: почему это может происходить? |
Как вариант: роль есть, а прав нет. |
И тогда РольДоступна() будет возвращать Ложь? |
[quote=stpd;45156830]у пользователя, у которого эти роли точно есть - эти два условия говорят "Нет" и форма закрывается таки для редактирования[/quote] Русское народное блюдо - каша в голове: роли [b]есть[/b], а ответ - [b]"Нет"[/b]? И вишенкой на торте - форма [b]"закрывается"[/b] вместо "открывается". Попробуйте сформулировать вопрос более осмысленно. |
(2) Если бы возвращалась Ложь, то выражение РольДоступна("...") = Ложь было бы истинно. |
Ну правильно ))) >>Проблема заключается в том, что у пользователя, у которого эти роли точно есть Если РольДоступна("Администратор") = Ложь И РольДоступна("МДМ_Администратор") = Ложь Тогда ЭтаФорма.Элементы.Список.ТолькоПросмотр = Истина; КонецЕсли; (0) А где Иначе? |
Ребята, ребята - не гоните! Если кто не понимает 1С-вского, перевожу на русский: Если у текущего пользователя нет прав Администратора или МДМ_Администратора - форма открывается в режиме "Только просмотр". Так вот, как я уже сказал - права у текущего пользователя есть. А форма все равно открывается в режиме "Только просмотр". Вопрос пока остается - как такое может быть? |
(5) А зачем здесь Иначе? |
+5 я не один раз сталкивался с загадочными логическими конструкциями в 1с, особенно на СКД ) |
Еще попробуй для начала: Если РольДоступна("Администратор") = Ложь Тогда ЭтаФорма.Элементы.Список.ТолькоПросмотр = Истина; КонецЕсли; потом попробуй Если РольДоступна("Администратор") = Ложь ИЛИ РольДоступна("МДМ_Администратор") = Ложь Тогда ЭтаФорма.Элементы.Список.ТолькоПросмотр = Истина; КонецЕсли; |
Матерь Божья! У чела есть роль и [b]РольДоступна("Администратор")[/b] возвращает [b]ИСТИНУ[/b]. А он ее в условии с [b]ЛОЖЬЮ [/b]сравнивает. Естественно, что результат операции [b]ИСТИНА = ЛОЖЬ[/b] - есть [b]ЛОЖЬ[/b]. |
Твою мать! Как я сам не увидел-то! :) iMoxa, респект. |
руки оторвать тому, кто пишет такой код. PS. а автор сейчас вернется, ибо дело не в (10) |
Если обе роли доступны, то условие не выполняется. Если хотя бы одна роль доступна, то условие не выполняется Если обе роли недоступны, то условие выполняется. ТолькоПросмотр устанавлиевается только на список, а не на форму, а автор пишет, что вся форма становится нередактируемой, значит дело вообще не в этом куске кода. |
(12)(13) По крайней мере Автор понял, что дело не в этом участке кода. |
(12) Да, дело не в этом. (13) 'Если обе роли недоступны, то условие выполняется.' - и устанавливается ТолькоПросмотр. Да, только на список. Но это приводит к тому, что блокируется работа с этим списком (это справочник) - невозможно ни добавить, ни удалить, ни изменить... |
Я почему сюда пришел - полез было в RLS, да коллеги сказали "Брось!" - я и бросил :) Решил информацию покопать. |
Я тогда переформулирую вопрос: При отладке оба РольДоступна() возвращают Ложь. Хотя в наборе прав пользователя обе эти роли есть. Возможно ли такое (возможно, ибо я собственными глазами это наблюдаю)? И если да, то почему? |
(17) прямо в конфигураторе в ролях галочки стоят? |
Падажди - а при чем здесь в ролях галочки? Проверяется наличие роли у пользователя - такая роль в Конфигураторе имеет место быть. И пользователю она присвоена. Какие галочки ты имеешь в виду? |
(19) В конфигураторе у пользователя роли можешь посмотреть? Именно в конфигураторе у пользователя эта роль отмечена галочкой на закладке прочее? |
МДМ_Администратор помечено, Администратор - нет. Причем - ребята, все заработало... Че было - не знаю. Всем спасибо, тема закрыта. |
вот почитаешь такое, и поневоле задумаешься, всё-таки есть здравое зерно в предложении ввести лицензии на отлов 1Сников |
Было такое. Чистка кэша помогла. |
Текущее время: 14:54. Часовой пояс GMT +3. |