Имя: Пароль:
1C
 
Производительный режим RLS. Доработан. Ошибка доступа
0 Wefast
 
05.08.25
16:26
ЗУП. Доработанный RLS
Новый реквизит Регион прокинут в справочник Сотрудники, Позиция штатного расписания и в документы.

Документ Совмещение. Методом проб выявлено, что ошибка из-за позиции штатного расписания(СовмещаемаяДолжность)
В модуле менеджера документа:
	Ограничение.Текст =
	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ДляВсехСтрок( ЗначениеРазрешено(ФизическиеЛица.ФизическоеЛицо, NULL КАК ИСТИНА)
	|	) И ЗначениеРазрешено(Организация)
	|	И ЗначениеРазрешено(Регион, ПустаяСсылка КАК Истина)
	|	И ЧтениеОбъектаРазрешено(СовмещающийСотрудник, ПустаяСсылка КАК Истина, NULL как ИСТИНА)
	|	И ЧтениеОбъектаРазрешено(ОтсутствующийСотрудник, ПустаяСсылка КАК Истина, NULL как ИСТИНА)
	|	И ЧтениеОбъектаРазрешено(СовмещаемаяДолжность, ПустаяСсылка КАК Истина, NULL как ИСТИНА)";


В модуле менеджера позиции штатного расписания:

	Ограничение.Текст =
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т
	|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПодчиненностьПодразделенийОрганизаций КАК Т2 
	|	ПО Т2.Подразделение = Т.Подразделение
	|;
	|РазрешитьЧтение
	|ГДЕ
	|	ЧтениеОбъектаРазрешено(Т.Владелец, null как Истина)
	|	И ЗначениеРазрешено(Т.Регион, ПустаяСсылка КАК Истина)
	|;
	|РазрешитьИзменениеЕслиРазрешеноЧтение
	|ГДЕ
	|	ЗначениеРазрешено(Т2.ВышестоящееПодразделение)
	|	И ЗначениеРазрешено(Т.Владелец)";


Добавлено только строка "И ЗначениеРазрешено(Т.Регион, пустаяСсылка как истина)"

При этом отдельно пользователь может открыть и позицию штатки и сотрудников.

Проверил обработкой "Управление доступа", везде где нужно было добавить добавлено

Очистил регистр сведений Ключи доступа к объектам. Очистил регистр Параметры доступа.
Пересчитал права.

Без понятия куда еще посмотреть.

Куда дальше копать не понимаю.
1 Saval1986
 
05.08.25
16:42
(0) База обновляется? Шаблоны ограничений в ролях актуальны?
2 Saval1986
 
05.08.25
16:44
(0) допиливали РЛС по должностям?
3 Wefast
 
05.08.25
16:56
(1) да
(2) нет, реорганизация. Часть филиалов объединили. Но видимость сотрудников и их окладов должна все равно быть "как раньше". А еще надо не допустить чтобы рядовые кадровики и расчетчики видели кто сколько получает в руководстве.
Решили вот так это реализовать.
РЛС по физ лицам не устроило и тестово не взлетело
4 craxx
 
05.08.25
17:42
(3) >>А еще надо не допустить чтобы рядовые кадровики и расчетчики видели кто сколько получает в руководстве.

Чистый бред) они бы еще программисту 1С закрыли доступ к цифрам.
5 ЕRPe
 
06.08.25
08:46
(0) Как справочник Регионы открывается к ограниченных пользователей. все видно или только разрешенные?
6 Wefast
 
06.08.25
08:48
(5) только разрешенные.
В принципе в других 20 документах проблем пока нет.
Но, на что обратить внимание пока не пойму
7 Ненавижу 1С
 
гуру
06.08.25
09:36
ну я бы начал с текста ошибка, которая в ЖР пишется
8 Wefast
 
06.08.25
09:50
(7) Ошибка доступа, Чтение. Документ Совмещение
9 Ненавижу 1С
 
гуру
06.08.25
11:03
может все-таки надо использовать ЧтениеОбъектаРазрешено вместо ЗначениеРазрешено? Хотя...
10 Wefast
 
07.08.25
13:58
Есть еще наблюдение

Документ на Организация №1
Совмещаемая должность на Организация №2

На сколько это правильно судить не могу, но аналитик говорит, раньше все было ок.

Если привожу должность и документ к одной организации(к любой из двух) - пользователь видит документ.
11 Ненавижу 1С
 
гуру
07.08.25
14:07
Организация №1 и Организация №2 это юридически разные (не филиалы)? Тогда это неправильно конечно
12 Wefast
 
07.08.25
15:01
(11) нет, это филиалы.
Но руками если в шапке документа Организация №1, то нельзя выбрать позицию штатки владельцем которой является организация №2.

Через обработку аналитик\пользователь подставляет необходимую позицию.

Но как это влияет на расчет прав не понимаю.
13 Ненавижу 1С
 
гуру
07.08.25
15:16
Ну показывайте уже правила для сотрудников и регионов - ПриЗаполненииОграниченияДоступа
14 Wefast
 
07.08.25
15:27
Не знаю, чем это поможет, но вдруг
Сотрудники:
	"ПрисоединитьДополнительныеТаблицы
	|ЭтотСписок КАК Т
	|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК Т3
	|	ПО Т.Ссылка = Т3.Сотрудник
	|;
        |РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Т3.Организация, null КАК Истина, ПустаяСсылка КАК Истина, Неопределено КАК Истина)
	|	И ЗначениеРазрешено(Т.ФизическоеЛицо)
	|	И ЗначениеРазрешено(Т.Регион, ПустаяСсылка КАК Истина)";




Регионы:

	"РазрешитьЧтениеИзменение
	|ГДЕ
	|	ЗначениеРазрешено(Ссылка)";
15 Ненавижу 1С
 
гуру
07.08.25
17:21
Очень похоже на то, что у пользователя доступ к сотруднику из одной группы доступа разрешен, а к штатной должности из другой. Так это не будет работать. Сначала определяется в каждой группе доступа доступные объекты, потом берется их объединение
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.