|
Как узнать имеет ли тек пользователь права на открытиие Документа | ☑ | ||
|---|---|---|---|---|
|
0
ОМЭЗ
06.08.08
✎
10:26
|
Как узнать имеет ли тек пользователь права на открытиие Документа?
|
|||
|
1
Serg_1960
06.08.08
✎
10:50
|
Элементарно, Ватсон!
"снаружи": войди в Предприятие под именем пользователя и открой нужный жлкумент :о))) "изнутри": справка СП Глобальный контекст ПравоДоступа (AccessRight) Синтаксис: ПравоДоступа(<Право>, <Объект метаданных>, <Пользователь/Роль>) Параметры: <Право> (обязательный) Тип: Строка. Название права доступа. Могут быть использованы следующие значения: Чтение (Read) - чтение; Добавление (Insert) - добавление; Изменение (Update) - изменение; Удаление (Delete) - удаление; Проведение (Posting) - проведение документов; ОтменаПроведения (UndoPosting) - отмена проведения документов; Просмотр (View) - просмотр; ИнтерактивноеДобавление (InteractiveInsert) - интерактивное добавление; Редактирование (Edit) - редактирование; ИнтерактивнаяПометкаУдаления (InteractiveSetDeletionMark) - интерактивная пометка на удаление; ИнтерактивноеСнятиеПометкиУдаления (InteractiveClearDeletionMark) - интерактивное снятие пометки на удаление; ИнтерактивноеУдалениеПомеченных (InteractiveDeleteMarked) - интерактивное удаление помеченных объектов; ИнтерактивноеПроведение (InteractivePosting) - интерактивное проведение; ИнтерактивноеПроведениеНеОперативное (InteractivePostingRegular) - интерактивное проведение (стандартными командами форм) документа в неоперативном режиме; ИнтерактивнаяОтменаПроведения (InteractiveUndoPosting) - интерактивная отмена проведения; ИнтерактивноеИзменениеПроведенных (InteractiveChangePosted) - интерактивное редактирование проведенного документа. Если право не установлено, то пользователь не может проведенный документ удалить, установить пометку удаления, перепровести или сделать непроведенным. Форма такого документа открывается в режиме просмотра. ВводПоСтроке (InputByString) - использование режима ввода по строке; УправлениеИтогами (TotalsControl) - управление итогами регистра бухгалтерии и регистра накопления (установка периода, по который рассчитаны итоги, и пересчет итогов); Использование (Use) - использование; ИнтерактивноеУдаление (InteractiveDelete) - интерактивное непосредственное удаление; Администрирование (Administration) - администрирование; МонопольныйРежим (ExclusiveMode) - использование монопольного режима; АктивныеПользователи (ActiveUsers) - просмотр списка активных пользователей; ЖурналРегистрации (EventLog) - журнал регистрации; ВнешнееСоединение (ExternalConnection) - внешнее соединение; Automation (Automation) - использование automation; ИнтерактивноеОткрытиеВнешнихОбработок (InteractiveOpenExtDataProcessors) - интерактивное открытие внешних обработок; ИнтерактивноеОткрытиеВнешнихОтчетов (InteractiveOpenExtDataReports) - интерактивное открытие внешних отчетов; Получение (Get) - получение значения, не хранящегося в базе данных; Установка (Set) - установка значения, не сохраняемого в базе данных; ИнтерактивнаяАктивация (InteractiveActivate) - интерактивная активация; Старт (Start) - старт бизнес-процесса; ИнтерактивныйСтарт (InteractiveStart) - интерактивный старт бизнес-процесса; Выполнение (Execute) - выполнение задачи; ИнтерактивноеВыполнение (InteractiveExecute) - интерактивное выполнение задачи; Вывод (Output) - вывод на печать, запись и копирование в буфер обмена; ОбновлениеКонфигурацииБазыДанных (UpdateDataBaseConfiguration) - обновление конфигурации базы данных. <Объект метаданных> (обязательный) |
|||
|
2
ОМЭЗ
06.08.08
✎
10:56
|
А как определить Роль которая относиться к документу
|
|||
|
3
Serg_1960
06.08.08
✎
11:01
|
А зачем тебе роль? Можно указывать пользователя:
ПравоДоступа("Чтение",НужныйДокумент,ИмяПользователя); |
|||
|
4
ОМЭЗ
06.08.08
✎
11:06
|
(3)Мне нужно узнать к какой роли относиться Документ,чтоб потом с єтой роли считать ДатуЗапрета редактирования и Заблокировать Форму.Ато пользователи както умудрились перетинуть док с прошлого периода
|
|||
|
5
Serg_1960
06.08.08
✎
11:06
|
Я отвечал на (0). А по поводу (2), если я тебя правильно понял:
В конфигураторе двойной щелчок мыши на документе, закладка Права. Смотри и соображай :о) |
|||
|
6
Serg_1960
06.08.08
✎
11:07
|
(4) Конфигурация какая?
|
|||
|
7
ОМЭЗ
06.08.08
✎
11:09
|
УПП(1.2) Для Украины 1С(8.1)
|
|||
|
8
ОМЭЗ
06.08.08
✎
11:18
|
ЭтотОбъект.Метаданные().
Почему там нету Право свойства |
|||
|
9
Serg_1960
06.08.08
✎
11:18
|
Привет Украине! У Вас "там" конфигурации "чудные". Функционала незнаю. У Вас что, права по дате на роль даны?
|
|||
|
10
ОМЭЗ
06.08.08
✎
11:19
|
(9)Но для каждой роли можно свою дату запрета установить
Помоги с (8) |
|||
|
11
Serg_1960
06.08.08
✎
11:19
|
(8) Права - это самостоятельный объект, а не свойство документа
|
|||
|
12
ОМЭЗ
06.08.08
✎
11:21
|
(11)А как к нему обратиться?
|
|||
|
13
ОМЭЗ
06.08.08
✎
11:26
|
ап
|
|||
|
14
Serg_1960
06.08.08
✎
11:30
|
"Права - самостоятельны объект" - извини за фигуральное выражение. Ввел Вас в заблуждение...
8) Можно, чтобы долго не копаться в СП, в конфигураторе, в режиме отладки, поставить точку останова в модуле документа (Например: в процедуре ПриЗаписи). Потом в мониторе по выражению "ЭтотОбъект.Метаданные()" можно посмотреть что доступно и как к этому обратиться. |
|||
|
15
ОМЭЗ
06.08.08
✎
11:41
|
Чтото нечего похожего не видно
|
|||
|
16
Serg_1960
06.08.08
✎
11:43
|
В функционале УПП для России (начиная 1.2.16.1) проверка на дату запрета изменения документов "вынесена" в отдельный функционал и проверяется при открытии формы документа. А у Вас, может быть, проверка на дату указывается в ролях пользователей. Так раньше было...
Может быть Вас больше устроит вот это: РольДоступна (IsInRole) Синтаксис: РольДоступна(<Роль>) Параметры: <Роль> (обязательный) Тип: Строка, ОбъектМетаданных: Роль. Название роли как она задана в конфигураторе или объект описания метаданного роли. Возвращаемое значение: Тип: Булево. Истина - роль доступна текущему пользователю; Ложь - в противном случае. Описание: Определяет доступность указанной роли текущему пользователю. Пример: Если Не РольДоступна("Менеджер") Тогда Сообщить("Просмотр заявок от покупателей не разрешен!"); КонецЕсли; |
|||
|
17
IronDemon
06.08.08
✎
11:49
|
ПравоДоступа("Просмотр",ЭтотОбъект.Метаданные())
|
|||
|
18
Serg_1960
06.08.08
✎
11:52
|
Попробуй: в конфигураторе открой роль и для документа посмотри запрос ограничения "Изменение". Там должно быть условие по дате ограничения внесения изменений.
|
|||
|
19
Serg_1960
06.08.08
✎
11:54
|
(17) См. (1) Но этого мало :(
|
|||
|
20
Serg_1960
06.08.08
✎
11:56
|
Фразу в (15) не понял. В диалоге пиши в скобках к чему это
|
|||
|
21
ОМЭЗ
06.08.08
✎
11:56
|
(19)Подскажи как считать доступные роли этого документа
|
|||
|
22
ОМЭЗ
06.08.08
✎
11:57
|
(20)Это к (14)
|
|||
|
23
Serg_1960
06.08.08
✎
12:04
|
Роль/документ - отношение "один ко многим". К документу разные роли дают разный права (на чтени, на запись,...) Если проверять "от документа" - толтко по каждому праву отдельно.
Вот такая боалванка поможет? Для Каждого Роль Из Метаданные.Роли Цикл Если Лев(Роль.Имя, 7) = "Удалить" Тогда Продолжить; КонецЕсли; Сообщить(Роль.Имя + ":"); Для Каждого Документ Из Метаданные.Документы Цикл Если ПравоДоступа("Просмотр",Документ,Роль) Тогда ТекДокумент = Документ.Синоним; ВсеПрава = "Ч" + ?(ПравоДоступа("ИнтерактивноеДобавление",Документ,Роль),"Д","") + ?(ПравоДоступа("Редактирование",Документ,Роль),"Р","") + ?(ПравоДоступа("ИнтерактивноеПроведение",Документ,Роль),"П","") + ?(ПравоДоступа("ИнтерактивнаяОтменаПроведения",Документ,Роль),"О",""); Если ВсеПрава = "Ч" Тогда ВсеСлова = " - только просмотр"; ИначеЕсли ВсеПрава = "ЧДРПО" Тогда ВсеСлова = " - все права"; ИначеЕсли ВсеПрава = "ЧПО" Тогда ВсеСлова = " - только проведение"; ИначеЕсли ВсеПрава = "ЧРПО" Тогда ВсеСлова = " - редактирование и проведение"; ИначеЕсли ВсеПрава = "ЧДР" Тогда ВсеСлова = " - без права проведения"; Иначе ВсеСлова = ?(Найти(ВсеПрава,"Ч")," - чтение","") + ?(Найти(ВсеПрава,"Д"),"/добавление","") + ?(Найти(ВсеПрава,"Р"),"/редактирование","") + ?(Найти(ВсеПрава,"П"),"/проведение","") + ?(Найти(ВсеПрава,"О"),"/отмена проведения",""); КонецЕсли; Сообщить("""" + ТекДокумент + """" + ВсеСлова); КонецЕсли; КонецЦикла; КонецЦикла; |
|||
|
24
Serg_1960
06.08.08
✎
12:06
|
(23) Нашел в барахолке :) Одна из "первых" моих программок по изучению конфы :о)
|
|||
|
25
Serg_1960
06.08.08
✎
12:12
|
Еще нашел :) из 14 релиза УПП Смотри внимательно "хвост" запроса :о)
ТребованиеНакладная ИЗ Документ.ТребованиеНакладная КАК ТребованиеНакладная ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам ПО ПраваДоступаПользователейКОбъектам.ОбъектДоступа = ТребованиеНакладная.Подразделение И (ПраваДоступаПользователейКОбъектам.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОграниченияПравДоступа.ПодразделенияДанные)) И (ПраваДоступаПользователейКОбъектам.Пользователь В (&ГруппыТекущегоПользователя)) И (ПраваДоступаПользователейКОбъектам.Изменение) И (ВЫБОР КОГДА ТребованиеНакладная.Проведен ТОГДА ВЫБОР КОГДА (НЕ 1 В (ВЫБРАТЬ РАЗЛИЧНЫЕ 1 ИЗ РегистрСведений.ГраницыЗапретаИзмененияДанных КАК ГраницыЗапретаИзмененияДанных ГДЕ ГраницыЗапретаИзмененияДанных.Организация В (ТребованиеНакладная.Организация, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)) И ГраницыЗапретаИзмененияДанных.Роль = ЗНАЧЕНИЕ(Перечисление.НаборПравПользователей.ЭкономистЦеха) И ТребованиеНакладная.Дата < ГраницыЗапретаИзмененияДанных.ГраницаЗапретаИзменений)) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ ИНАЧЕ ИСТИНА КОНЕЦ) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |