Имя: Пароль:
1C
 
два взаимоисключающих RLS не работают вместе
0 MaxS
 
21.05.10
16:02
Платформа 1С 8.1, Конфигурация УПП 1.2.30.1, Документ Расходный кассовый ордер.
Пользователь с включенными ролями Касир и ВыплатаЗарплаты.
Используются только ограничение на уровне записей по Организации.

Этот пользователь может перепроводить и перезаписывать любой документ РКО своей организации. Но он не может изменить вид операции, например с "Прочий расход денежных средств" на "Выплата заработной платы по ведомостям"  или наоборот.
Появляется сообщение при попытке записать непроведенный документ:
"У пользователя недостаточно прав на исполнение операций над базой данных."
Почему?
1 Дикообразко
 
21.05.10
16:03
баг
2 acsent
 
21.05.10
16:04
(0) Ты же сам ответил почему
3 MaxS
 
21.05.10
16:22
Часть кода RLS, право Изменение:

Роль ВыплатаЗарплаты
ИЛИ ТекущаяТаблица.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям)

Роль Кассир:
И ТекущаяТаблица.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыПоВедомостям)

(1) да, где-то читал что это баг. )) Сходу не нашел где 1С о нем заявило.

Я уже потратил время на обновление копии на один релиз, потом сконвертировал её на платформу 8.2... Баг не пропал.
Стоит ли продолжать? ;) в УПП 1.3 на платформе 8.2 этот баг есть?
Не хочется тратить время доработку штатной конфигурации, т.к. это увеличивает стоимость её обслуживания. ((
4 MaxS
 
26.05.10
08:23
продолжаю диалог & монолог & блог & мысли вслух ;)
Без изменения кода никак. ((
Как лучше поступить?
1) Добавить роль.
2) Добавить в форму перед записью вызов процедуры дополнительного общего модуля с полными правами.
3) Сделать подписку на событие, где перехватывать попытку записи конкретных документов и в дополнительном общем модуле с полными правами записывать.

Самый "прозрачный" для пользователей и администраторов базы - 2-й и 3-й варианты.
Самый быстрый в работе - 2-й. Подписка на событие будет срабатывать всегда на все документы и при проведении обработками, а этого не требуется.

Но кроме РКО есть ещё и ПКО и возможно ещё что-то с подобным багом, получается что универсальнее сделать вариант 3.