Настройка доступа по автору документа в БП 3.0 #750996


#0 by Admin_Net_1C
Добрый день народ. Подскажите, как реализовать следующую задачу в БП 3.0: доступ пользователя только к документам, автором которых он является. На вскидку, я так понимаю надо использовать RLS, но опыта работы с данным механизмом не имею. Есть ли другие типовые варианты решения задачи (без переписывания всей конфигурации)?
#1 by Lamer1C
а если пользователь уволится?
#2 by Dmitriy_76
а тут (в рлс) все и не надо переписывать. Добавляешь свою роль, и в ней настраиваешь необходимый доступ статей по настройке РЛС тьма.
#3 by Dmitriy_76
ну с полными правами то всяко ВСЕ видно :)
#4 by Lamer1C
смотря как это реализовывать :)
#5 by OldMonk
каждому юзеру - по роли? :))
#6 by Admin_Net_1C
не нашел пока такую, где все расписано по шагам. Кусками из разных статей пытаюсь собрать, чтобы более менее ясная картина предстала, пока слабо получается (
#7 by Admin_Net_1C
под полными правами ни нужно чтобы было видно
#8 by Lamer1C
а вообще, есть типовой механизм - ограничение доступа на уровне записей. правда там по организациям. но для примера можно взять. ну вот в   ))
#9 by Dmitriy_76
ууу ЗАЧЕМ ???
#10 by Admin_Net_1C
-> НУЖНО - опечатался ) Попутно еще один вопрос возник, а как в этом случае будет отрабатывать подбор, например в том же документе "Авансовый отчет" есть реквизит "ДокументАванса", но его ведь может ввести и другой пользователь. Как тогда можно будет выбрать данный документ?
#11 by Lamer1C
если RLS - то никак
#12 by Stim
не хочешь возиться с рлс - делай отбор в форме списка и не разрешай его изменять пользователю
#13 by OldMonk
а как ты это сделаешь одной ролью?
#14 by Fl0Mаsтер
Была похожая задача, но по ходу обсуждения с заказчиком, выяснили, что пусть документы будут видны и другим пользователям, и что другие пользователи могут их открывать. Но изменять, проводить - нет. Решилось элементарно блокирование интерфейса формы.
#15 by Admin_Net_1C
тогда RLS, получается, не подходит... Ок, тогда возможно ли создать подписку на открытие ЛЮБОГО документа? (Чтобы в ней проверять, например Если Ответственный<>ТекущийПользователь Тогда Возврат - что то типа такого)
#16 by Dmitriy_76
подписки при открытии нет.. а вот перед записью вполне можно...
#17 by Dmitriy_76
+ рлс как раз и на изменение настроить вполне устроит
#18 by OldMonk
ТС не хочет лезть в конфигуратор.
#19 by Stim
как так нету?? есть подписка с событием ОбработкаПолученияФормы, там все есть
#20 by Admin_Net_1C
это как раз без проблем. Не хочется изобретать велосипед, типа прописывания доп.кода в каждую форму, например при открытии. спасибо, посмотрю
#21 by Dmitriy_76
это подписка ???? или обработчик ?
#22 by Fl0Mаsтер
подписка, но не объекта, а менеджера сам только узнал
#23 by Dmitriy_76
мы не путаем... то что вставляем 1 раз..выбираем кучу объектов и все.... и кусок кода который надо вставить  в каждый документ?
#24 by OldMonk
ответь плз таки на вопрос: как тут обойтись одной ролью?
#25 by Dmitriy_76
Обычным образом..зачем плодить то ? тогда расскажи свой коварный план на каждого пользователя отдельную роль ....? или РЛС не знает какой пользователь пытается обратиться к данным ???
#26 by Lamer1C
rls на изменение
#27 by Admin_Net_1C
посмотрел, создал свою подписку на событие ОбработкаПолученияФормы, все хорошо...НО как теперь в этой подписке сделать, чтобы форма не открывалась? Попробовал так: [1С] Процедура ОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт Перем ДокСсылка;     Если НЕ РольДоступна("ПолныеПрава") И ВидФормы = "ФормаОбъекта" Тогда Если Параметры.Свойство("Ключ", ДокСсылка) Тогда Если ДокСсылка <> Неопределено Тогда                  Автор = Справочники.Пользователи.ПустаяСсылка; Попытка Автор = ДокСсылка.Ответственный; Исключение //у данного документа нет реквизита шапки "Ответственный" Возврат; КонецПопытки;                      Если Автор <> ПараметрыСеанса.ТекущийПользователь Тогда   СтандартнаяОбработка = Ложь;   ВыбраннаяФорма = ""; КонецЕсли;     КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры [/1C] но в этом случае возникает ошибка "Неизвестный идентификатор формы"
#28 by OldMonk
то есть как минимум уравнять в правах ГБ, буха и кладовщика? одной ролью в любом случае не обойдешься.
#29 by Admin_Net_1C
получается этот вариант тоже не подходит (((
#30 by OldMonk
Если внятно объяснит, как в данной ситуации обойтись одной ролью, то может быть так лучше и сделать :) Но есть еще вариант, хоть он потребует вмешательства в конфигурацию. Любой документ сначала лезет в процедуру ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(,) и вот там-то можно добавить свой код.
#31 by Stim
не мучайся. лови в подписке форму списка, настраивай отбор ДС по ответственному
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С