Помогите разобраться с правами в 1С Розница 2.2

1. НовенькийЯ 19.03.19 22:25 Сейчас в теме
Добрый день.
Есть 1С Розница 2.2.7.42.
Какие бы я запреты не ставил в настройках прав пользователя, почти всегда ему все разрешено.
Полез в код и обнаружил там странный код, точнее странную проверку прав.
Запрос выбирает все значения для необходимого права с отбором по пользователю или группе пользователей в состав которой входит данны пользователи, или же по группе "Все пользователи", т.е. условие выглядит так:
РегистрЗначениеПрав.Пользователь В
|			(ВЫБРАТЬ
|				ПользователиГруппы.Ссылка КАК Ссылка
|			ИЗ
|				Справочник.ГруппыПользователей.Состав КАК ПользователиГруппы
|			ГДЕ
|				ПользователиГруппы.Пользователь = &Пользователь
|		
|			ОБЪЕДИНИТЬ ВСЕ
|		
|			ВЫБРАТЬ
|				ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)
|		
|			ОБЪЕДИНИТЬ ВСЕ
|		
|			ВЫБРАТЬ
|				&Пользователь)
Показать

В результате возвращается массив найденных значений.
Т.е. если на "Все пользователи" Разрешена продажа в минус = Истина, а на самого пользователя = Ложь, то в массив результатов войдет 2 значения Ложь и Истина.
Следом идет проверка:
Если (Список.Количество() = 0) ИЛИ (Список.Количество() > 1) Тогда
	Возврат Истина;
Иначе
	Возврат Список[0].Значение;
КонецЕсли;

И тут без мата просто не получается выразить всех чувств.
Т.е. не зависимо от того какие значения установлены для данного права, пользователь всегда будет иметь право продажи в минус.
Скажем запретили пользователю продажу в минус и группе "Все пользователи" тоже поставили запрет. Запрос вернет 2 значения Ложь и Ложь. В результат сработает проверка Если (Список.Количество() = 0) ИЛИ (Список.Количество() > 1) Тогда
Возврат Истина;
ФАК, откуда такая логика, почему в двух местах указано НЕ разрешена пользвователю продажа в минуса, а 1С все равно упорно дает такие права пользователю
Т.е. пользователю всегда все разрешено если права заданы на пользователя и на группу пользователей.

Как в рознице настроить что все имеют права редактировать цены в документах а 1 пользователь или группа пользователей не имеет таких прав?
Если в базе десяток пользователей, то можно каждому назначить персональные права и ни в коем случае не назначать права на группы пользователей. Но когда в базе сотня пользователей, разделенных по группам, то назначать каждому права просто не логично.
Может это только в этом релизе такая Ж с правами???
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user771650 20.03.19 09:21 Сейчас в теме
(1) обновите релиз, права работают и без влезания в код
5. НовенькийЯ 20.03.19 12:09 Сейчас в теме
(2) - эта информация 100% верная, т.е. в последних версиях по другому проверяются права?
(3) - можно, я ж написал, что если ставить права только на пользователя - все нормально, а если на пользователя и на группу, в которой он находится - то тогда проблемы с правами начинаются.
(4) - возможно я не так объяснил, постараюсь еще раз объяснить другими словами.

Есть Пользователь, и есть Группа. Пользователь входит в состав этой Группы.
Пользователю назначаю доп право "Разрешена продажа в минус" = НЕТ
Группе назначаю доп право "Разрешена продажа в минус" = НЕТ
При этом 1С не запрещает продажу в минус.
А все из за того что на одно и то же доп право назначено 2 варианта, и не важно какие они ДА/ДА или НЕТ/НЕТ или ДА/НЕТ
1С всегда будет разрешать продажу в минус из-за этого куска говнокода:
Если (Список.Количество() = 0) ИЛИ (Список.Количество() > 1) Тогда
    Возврат Истина;

Потому что Список в данном случае содержит 2 значения, а то и 3 может содержать, если на группу "Все пользователи" так же назначены доп права.
3. user771650 20.03.19 09:24 Сейчас в теме
(1)Администрирование - пользователи - дополнительные права - там можно и цену назначить убрать и много чего
4. anton13m 2 20.03.19 09:24 Сейчас в теме
Как в рознице настроить что все имеют права редактировать цены в документах а 1 пользователь или группа пользователей не имеет таких прав?

Список ролей, назначенных пользователю, складывается из всех ролей, входящих в состав групп доступа, в которые включен пользователь.
Оставьте свое сообщение

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