Ограничение конкретного пользователя

1. nokirosito 09.11.21 11:59 Сейчас в теме
Добрый день! Подскажите пожалуйста, как запретить конкретному пользователю(Пусть будет Настя), редактировать документы других пользователей, а конкретно заказы клиенту? 8.3.17.1549, конфа 2.4.13.278
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
10. homer_ 79 09.11.21 12:46 Сейчас в теме
(1) Убрать админские права под любым предлогом.
Установить у пользователя RLS, должен быть стандартный функционал ограничение на пользователя.
или подписку на событие (или через расширение на документ событие "ПриЗаписи")
2. soft_wind 09.11.21 12:11 Сейчас в теме
настройка ролей
добавьте роль МенеджерПоЗаказамТолькоСвои
в условиях на редактирование пропишите ТекущийПользователь = Автор (это пример)

уберите у нее общую роль и назначьте эту
3. nokirosito 09.11.21 12:12 Сейчас в теме
(2)Проблема в том, что у нее права админа. По этому и хотел сделать это расширением, например.
20. ishelper 09.11.21 13:01 Сейчас в теме
(1)
как запретить конкретному пользователю(Пусть будет Настя), редактировать документы других пользователей, а конкретно заказы клиенту? 8.3.17.1549
Если нужно запретить редактирование только одного документа, то можно прямо в нем (в процедуре ПриОткрытии()) прописать Этаформа.ТолькоПросмотр для определенного имени пользователя: "пусть будет Настя" - если автор документа не Настя.
(3)
По этому и хотел сделать это расширением, например.
Осталось написать расширение... ;)
21. nokirosito 09.11.21 13:05 Сейчас в теме
(20)Что сейчас и пытаюсь сделать, хотя я просто пользователь с базовыми знаниями. Добавил еще старманю, вдруг кто поможет=). По поводу задачи, да Вы все верно поняли=)Благодарю за совет.
22. platonov.e 161 09.11.21 13:17 Сейчас в теме
(21) Но ведь я вам уже написал код) Берите его, создавайте расширения, вставьте в обработчик и готово)
23. ishelper 09.11.21 13:24 Сейчас в теме
(21)
Добавил еще старманю, вдруг кто поможет=)
Выложит готовое расширение? Именно для вашей конфигурации? Ну-ну, удачи!

P.S. Учтите: код в (12) не проверяет - кто создал документ? Поэтому, если его использовать "как есть", то Настя потеряет возможность редактировать все заказы, даже свои.
4. nokirosito 09.11.21 12:20 Сейчас в теме
По этому и хочется сделать запрет именно привязкой пользователю, а не к ролям.
5. soft_wind 09.11.21 12:29 Сейчас в теме
(4)
у нее права админа.


зачет!

еще вариант, Вызовите ее на совещание директоров и строго скажите

- Настя, нельзя тебе редактировать чужие заказы!
EVKash; ant1773; +2 Ответить
6. nokirosito 09.11.21 12:31 Сейчас в теме
(5)Не помогает=))Я только с такого вот совещания, хз какого по счету=)Отсюда и права видимо, по этому и возникла идея ограничить программно без привязки к правам=)
7. platonov.e 161 09.11.21 12:36 Сейчас в теме
(5) Или вызвать на совещание в кабинет директора, и сказать - Настя, тебе нельзя заходить в кабинет директора!)))

И условие на ответственного в документе

ЭтаФорма.ТолькоПросмотр = НЕ РольДоступна(КакаятоСпециальнаяроль);
8. nokirosito 09.11.21 12:40 Сейчас в теме
(7)Ну свои то заказы, она должна мочь редактировать, а вот чужие нет=)Что бы товар из них не воровать=)Он ее сам вызывает, чуть ругает по отечески и на этом все заканчивается, а потом повторяется. Но это лирика, вопрос актуален по прежнему!
9. platonov.e 161 09.11.21 12:45 Сейчас в теме
(8)
Ну роль позволит определить что она только свои заказы должна редактировать, а условие на пользователя идентифицирует пользователя как владельца или нет. Я просто хз по какому полю там определить кто создатель документа

ЭтаФорма.ТолькоПросмотр = РольДоступна(КакаятоСпециальнаяроль) И ТекущийПользователь <> Объект.Отвественный;
24. nokirosito 09.11.21 13:40 Сейчас в теме
(7)
&НаКлиенте
Процедура Запрет1_ПриОткрытииВместо(Отказ)
ЭтаФорма.ТолькоПросмотр = НЕ РольДоступна(Чтение ЭЛН);
ЭтаФорма.ТолькоПросмотр = РольДоступна(Чтение ЭЛН) И ТекущийПользователь <> Объект.Отвественный;
КонецПроцедуры



Ругается на {Запрет Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(4,49)}: Ожидается символ ')'
ЭтаФорма.ТолькоПросмотр = НЕ РольДоступна(Чтение<<?>> ЭЛН); (Проверка: Сервер)
11. nokirosito 09.11.21 12:47 Сейчас в теме
В каждом заказе при создании автоматически заполняется поле менеджер. Туда как раз подставляется пользователь, создатель документа.
12. JBoy 2 09.11.21 12:49 Сейчас в теме
Функция ЭтоНастя()
Настя = Справочники.Пользователи.НайтиПоНаименованию("Настя");
Возврат Настя = ТекущийПользователь();
КонецФункции;

Процедура ПриОткрытии()
....
ЭтаФорма.ТолькоПросмотр = ЭтоНастя():
КонецПроцедуры

Показать
17. nokirosito 09.11.21 12:57 Сейчас в теме
(12)Спасибо, сейчас попробую.
13. JBoy 2 09.11.21 12:51 Сейчас в теме
(12) + еще добавить условие если автор - "Настя", то разрешить
14. XAKEP 09.11.21 12:52 Сейчас в теме
смотрите, какая "Настя" - подключит внешнюю обработку с жучком,
и после ее (его) ухода проблемы в базе обеспечены.

т.е.вместо закрыть кран - черпаете воду ?
15. XAKEP 09.11.21 12:54 Сейчас в теме
на комплексной автоматизации - у вас такие "Насти" ?

а что же на производстве тогда.......
16. nokirosito 09.11.21 12:56 Сейчас в теме
(15)Да честно говоря, нам бы и УТ хватило, КА это наследие еще с 1.1
18. XAKEP 09.11.21 12:57 Сейчас в теме
(16)
да хоть Розница - вы же проблемы разгребать будете потом "кровью и пОтом"
19. nokirosito 09.11.21 12:59 Сейчас в теме
25. JBoy 2 09.11.21 13:48 Сейчас в теме
(24) РольДоступна () вызывается на сервере
26. JBoy 2 09.11.21 13:55 Сейчас в теме +2 $m
&НаСервере
Функция ЭтоНастя()
Настя = Справочники.Пользователи.НайтиПоНаименованию("Настя");
Возврат Настя = ТекущийПользователь() И НЕ(Объект.Ответственный = Настя);
КонецФункции;

&НаКлиенте
Процедура Расш_ПриОткрытииПосле(Отказ)
ЭтаФорма.ТолькоПросмотр = ЭтоНастя():
КонецПроцедуры
Показать
27. nokirosito 09.11.21 14:10 Сейчас в теме
(26)
{Запрет Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(7,1)}: Неопознанный оператор
<<?>>&НаКлиенте (Проверка: Сервер)
{Запрет Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Сервер)
UPD убрал точку с запятой после "конец функции" и поставил ЭтаФорма.ТолькоПросмотр = Настя(); точку с запятой вместо двоеточия
Теперь ругается только на "Процедура или функция с указанным именем не определена (ТекущийПользователь)"
28. nokirosito 09.11.21 14:19 Сейчас в теме
(26) Спасибо, разобрался. Работает в таком виде
&НаСервере
Функция Настя()
Настя = Справочники.Пользователи.НайтиПоНаименованию("Анастасия");
Возврат Настя = ПользователиИнформационнойБазы.ТекущийПользователь() И НЕ(Объект.Ответственный = Настя);
КонецФункции

&НаКлиенте
Процедура Запрет1_ПриОткрытииПосле(Отказ)
ЭтаФорма.ТолькоПросмотр = Настя();
КонецПроцедуры

Показать
29. JBoy 2 09.11.21 14:26 Сейчас в теме
(27) Попробуй ПользователиКлиентСервер.ТекущийПользователь()
30. JBoy 2 09.11.21 14:27 Сейчас в теме
(28) Но права Насте все равно подрежь ))
31. nokirosito 09.11.21 14:51 Сейчас в теме
(30)Да походу надо. Ведь она даже с этим расширением, может его закрыть=)
32. rintik 19 09.11.21 16:39 Сейчас в теме
Можно еще перед записью отказ добавить. Иначе групповой обработкой будет изменять.
33. nokirosito 09.11.21 18:57 Сейчас в теме
(32) А как добавить? Буду рад, если подскажете!
34. EVKash 16 09.11.21 19:42 Сейчас в теме
(33) пока не порежете права будет примерно так.
Прикрепленные файлы:
35. nokirosito 09.11.21 22:33 Сейчас в теме
(34) Я понял, спасибо за отличный юмор!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот