Здравствуйте!
Как можно скрыть чужие документы (и вообще все объекты) от пользователя, если он не имеет роли "полные права"?
Чужими для него являются все объекты, которые созданы не им.
Например, открывается список "Все кадровые документы", а в списке отображаются документы созданные только текущим пользователем, не имеющим роли "полный права".
Нужно не запретить открытие или запретить редактирование, а именно вообще скрыть из предприятия эти объекты.
Как можно скрыть чужие документы (и вообще все объекты) от пользователя, если он не имеет роли "полные права"?
Чужими для него являются все объекты, которые созданы не им.
Например, открывается список "Все кадровые документы", а в списке отображаются документы созданные только текущим пользователем, не имеющим роли "полный права".
Нужно не запретить открытие или запретить редактирование, а именно вообще скрыть из предприятия эти объекты.
Найденные решения
(3) Позволил себе другой способ определения метаданных, чтобы журналы тоже работали.
в каждой открываемой форме прописывать отбор
С учетом сказанного в (4), уточню — формы менять вообще не надо. Предлагается создать подписку к объекту составного типа: ДокументМенеджер, ЖурналДокументовМенеджер. В подписке следующий код:Процедура Расш1_ПодпискаНаСобытие1ОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
Если (ВидФормы = "ФормаСписка" Или ВидФормы = "ФормаВыбора") И Не РольДоступна("ПолныеПрава") Тогда
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Источник));
Если МетаданныеОбъекта <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
Если Параметры.Свойство("Отбор") Тогда
Отбор = Параметры.Отбор;
Иначе
Отбор = Новый Структура;
КонецЕсли;
Отбор.Вставить("Ответственный", ПараметрыСеанса.ТекущийПользователь);
Параметры.Вставить("Отбор", Отбор);
ВыбраннаяФорма = МетаданныеОбъекта.ПолноеИмя() + "." + ВидФормы;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Ну допустим так:
&После("ОбработкаПолученияФормы")
Процедура Расш1_ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаСписка" И Не РольДоступна("ПолныеПрава") Тогда
СтандартнаяОбработка = Ложь;
Если Параметры.Свойство("Отбор") Тогда
Отбор = Параметры.Отбор;
Иначе
Отбор = Новый Структура;
КонецЕсли;
Отбор.Вставить("Ответственный", ПараметрыСеанса.ТекущийПользователь);
Параметры.Вставить("Отбор", Отбор);
ВыбраннаяФорма = "ЖурналДокументов.КадровыеДокументы." + ВидФормы;
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
(3)Таким же способом. У подписки на событие поставить источник "ДокументМенеджер", чтобы срабатывала для всех документов. Выбранную форму указывать при помощи метаданных источника:
СсылкаНаПустойДокумент = Источник.ПустаяСсылка();
МетаданныеДокумента = СсылкаНаПустойДокумент.Метаданные();
ИмяДокумента = МетаданныеДокумента.ПолноеИмя();
ВыбраннаяФорма = ИмяДокумента + "." + ВидФормы;
(3) Позволил себе другой способ определения метаданных, чтобы журналы тоже работали.
в каждой открываемой форме прописывать отбор
С учетом сказанного в (4), уточню — формы менять вообще не надо. Предлагается создать подписку к объекту составного типа: ДокументМенеджер, ЖурналДокументовМенеджер. В подписке следующий код:Процедура Расш1_ПодпискаНаСобытие1ОбработкаПолученияФормы(Источник, ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка) Экспорт
Если (ВидФормы = "ФормаСписка" Или ВидФормы = "ФормаВыбора") И Не РольДоступна("ПолныеПрава") Тогда
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Источник));
Если МетаданныеОбъекта <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
Если Параметры.Свойство("Отбор") Тогда
Отбор = Параметры.Отбор;
Иначе
Отбор = Новый Структура;
КонецЕсли;
Отбор.Вставить("Ответственный", ПараметрыСеанса.ТекущийПользователь);
Параметры.Вставить("Отбор", Отбор);
ВыбраннаяФорма = МетаданныеОбъекта.ПолноеИмя() + "." + ВидФормы;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот