Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Права доступа - нюансы, RLS (число прочтений - 3334 )
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Права доступа - нюансы, RLS
21. Июня 2012 :: 04:53
Печать  
Допиливая одну небольшую базу, поставил сам себе четкую установку разруливать по правам более-менее грамотно, а не "как обычно".
Местами сломал моск, местами обнаружил маловменяемые нюансы.

Очень хочется почитать внятную литературу по грамотной настройке прав в 1С8.
Может кто что посоветовать?

Собственно, вопросы:
1) В неком куске кода вызов Док.Записать(РежимЗаписи.Проведение, РежимПроведения.Неоперативный); вызывает ошибку с формулировкой в духе "недостаточно прав для операций с объектами БД".
На сам документ, само собой, прав хватает. А не хватает их или на какой-то регистр, по которому пытаются записаться движения, или еще на что.
Внимание, вопрос - есть ли какая-то возможность (или какая-то система логирования), чтоб понять - а на что именно не хватило прав?
Ибо подписки на события, и прочие прелести стандартных конфиг делают поиск того, на что же именно нехватило прав, очень затруднительным.


2) Есть журнал, назовем его "поступления на склад". В нем сделано RLS-ограничение по графе "МестоХранение" - рядовые пользователи должны видеть только то, что приходит на "их" склад.
В составе журнала 2 документа - непосредственно поступление и перемещение между складами.
По логике журнала, юзер должен видеть только те перемещения, у которых СкладПолучатель = "его" склад.
Документ перемещения формирует склад-отправитель, но для записи-проведения этого документа, ВНЕЗАПНО, необходимы права на чтение журнала (а поскольку на журнале еще и RLS - то необходимо, чтоб документ проходил под условия RLS).
Но если расширить условие RLS, чтоб склад-отправитель мог записать этот документ, он (документ) будет торчать у отправителя в журнале - а он ему там нафиг не нужен.
В качестве решения у меня придумалось только использования неотключаемого отбора по графе МестоХранение. Есть еще идеи, как это разрулить?

Хотя тут возможен особый цинизм в алгоритме проведения (там пост-запись имеется, из-за своих приколов), сейчас отдельно напишу.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Права доступа - нюансы, RLS
Ответ #1 - 21. Июня 2012 :: 05:00
Печать  
Satans Claws писал(а) 21. Июня 2012 :: 04:53:
1) В неком куске кода вызов Док.Записать(РежимЗаписи.Проведение, РежимПроведения.Неоперативный); вызывает ошибку с формулировкой в духе "недостаточно прав для операций с объектами БД".
На сам документ, само собой, прав хватает. А не хватает их или на какой-то регистр, по которому пытаются записаться движения, или еще на что.
Внимание, вопрос - есть ли какая-то возможность (или какая-то система логирования), чтоб понять - а на что именно не хватило прав?

В штатном журнале регистрации ведется регистрация подобных событий. Событие - группа Доступ, событие Отказ в доступе
в 8.1 точно нету этой фичи, в 8.2.13 и выше точно есть, более старых версий 8.2 не проверял.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Права доступа - нюансы, RLS
Ответ #2 - 21. Июня 2012 :: 05:39
Печать  
artbear писал(а) 21. Июня 2012 :: 05:00:
Satans Claws писал(а) 21. Июня 2012 :: 04:53:
1) В неком куске кода вызов Док.Записать(РежимЗаписи.Проведение, РежимПроведения.Неоперативный); вызывает ошибку с формулировкой в духе "недостаточно прав для операций с объектами БД".
На сам документ, само собой, прав хватает. А не хватает их или на какой-то регистр, по которому пытаются записаться движения, или еще на что.
Внимание, вопрос - есть ли какая-то возможность (или какая-то система логирования), чтоб понять - а на что именно не хватило прав?

В штатном журнале регистрации ведется регистрация подобных событий. Событие - группа Доступ, событие Отказ в доступе
в 8.1 точно нету этой фичи, в 8.2.13 и выше точно есть, более старых версий 8.2 не проверял.


Т.е. прям пишет, типо "Отказ в доступе: РегистрОборотов.Продажи" или там "ПланОбмена.Основной"?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Права доступа - нюансы, RLS
Ответ #3 - 21. Июня 2012 :: 06:26
Печать  
конечно
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Права доступа - нюансы, RLS
Ответ #4 - 21. Июня 2012 :: 06:34
Печать  
Это радует.
Правда, там пока 8.1 - но это ж можно и поправить Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать