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