|
Закрыть доступ к универсальному отчёту рядовым сотрудникам. | ☑ | ||
---|---|---|---|---|
0
Godunov
02.06.16
✎
17:04
|
Приветствую ГУРУ 1С, возник вопрос, как для простых "смертных", для примера МенеджерПоЗакупкам закрыть доступ в универсальный отчёт?
http://savepic.ru/10012098.png То есть надо, чтобы в процедуре при открытии проверялись права и либо открывать отчёт либо нет. Делал так как показано в следующем рисунке. http://savepic.ru/9968081.png Пользователю не позволяет открыть универсальный отчёт, но тогда не позволяет открыть другие взаимосвязанные отчёты... http://savepic.ru/9972176.png http://savepic.ru/10010067.png Сам новичок в 1С, не программист, всего лишь сисадмин, изучаю с нуля, куча вопросов у меня. Может кто сталкивался с подобным, можете подсказать? |
|||
1
Nuobu
02.06.16
✎
17:09
|
(0) У универсального отчета есть форма. Поставь запрет там.
|
|||
2
Михаил Козлов
02.06.16
✎
17:10
|
Интерфейсом.
|
|||
3
Godunov
02.06.16
✎
17:11
|
(1) (2) Гляну.
|
|||
4
mehfk
02.06.16
✎
17:13
|
(0) Галку использование оставь, а просмотр убери.
|
|||
5
Godunov
02.06.16
✎
17:24
|
(4) Вроде помогло, позже более глубже взаимосвязанные отчёты проверю.
|
|||
6
Nuobu
02.06.16
✎
17:24
|
(5) А в настройки пускает?
|
|||
7
Godunov
02.06.16
✎
17:27
|
(6) Щас вот так вот
http://savepic.ru/9970134.jpg Сделал по совету (4) Но мне надо проверить будет позже другие отчёты, вдруг там косяки всплывут... |
|||
8
Godunov
03.06.16
✎
09:47
|
В общем решение с галочками не решает моей задачи, если попытаться открыть отчёт, который показан на рисунке
http://savepic.ru/10009950.png и зайти в "Настройки", то выдаст окошко "Нарушение прав доступа!" http://savepic.ru/9998686.png А мне надо туда попасть. Поэтому думаю нужно прописывать код в процедуре с нужными правами, кто-нить делал подобное? |
|||
9
Nuobu
03.06.16
✎
09:50
|
(8) Если НЕ РольДоступна("ПолныеПрава") И НЕ РольДоступна("ПользовательДляУниверсальногоОтчета") Тогда
Отказ = Истина; КонецЕсли; Это в "Перед открытием" в форме универсального отчета. А доступ к отчету оставь. |
|||
10
Godunov
03.06.16
✎
09:55
|
(9) Проверю.
|
|||
11
mehfk
03.06.16
✎
10:08
|
В общем, убирай из интерфейса. При использовании как (4), так и (9) перестанут работать расшифровки.
|
|||
12
Nuobu
03.06.16
✎
10:33
|
(11) В смысле не будет, если будет? Универсальный отчет, ведь, не свою расшифровку открывает, а форму отчета, из которой он открыт.
|
|||
13
mehfk
03.06.16
✎
10:38
|
(12) Теоретик?
|
|||
14
Lama12
03.06.16
✎
10:40
|
(10) А консоль отчетов не беспокоит? А табло?
Может ограничивать доступ к объектам метаданных у которых хранится информация которую не следует показывать? Или РЛС воспользоваться. Если у меня есть доступ к табло, и доступ к данным,то эти данные я всегда смогу получить через табло. |
|||
15
Godunov
03.06.16
✎
10:42
|
(9) Доступ вернул. В общем не нашёл я "Перед открытием" в форме УО.
http://savepic.ru/10012009.png Прописал код в модуле формы. http://savepic.ru/9997673.png Результат никакой... http://savepic.ru/9986409.png |
|||
16
Godunov
03.06.16
✎
10:44
|
(14) А можно по-подробнее? Новичок потому что...
|
|||
17
Lama12
03.06.16
✎
11:03
|
(16) Зачем ограничивать доступ к отчету, если у пользователя есть доступ к данным? Ну вот если пользователь может открыть регистр паспортные данные и посмотреть что там записано, то нафига закрывать отчет по этому регистру? Если пользователь может вносить элементы в справочник "Контрагенты", то зачем закрывать возможность построить отчет по этому справочнику?
К тому, все говорю, что лучше продумать доступ к данным, а не к отчету. |
|||
18
Godunov
03.06.16
✎
11:44
|
(17) Позже уточню.
|
|||
19
Godunov
03.06.16
✎
13:21
|
(17) К сожалению надо реализовать задачу именно так, как описано мной выше, прорабатывать данные более подробно никто не готов.
|
|||
20
Nuobu
06.06.16
✎
09:48
|
(15) Так добавь. Только не к табличному документу, а к форме.
|
|||
21
Godunov
06.06.16
✎
10:08
|
(20) К форме и добавляю, вот такой код прописал в форме, всё равно не работает, открывается отчёт у того пользователя с правами, что написаны в коде...
http://savepic.ru/9997176.png |
|||
22
Godunov
06.06.16
✎
16:43
|
Вопрос закрыт, просто не надо было мне писать "НЕ", тогда всё работает как мне надо, разобрался с синтаксисом.
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Если (РольДоступна(Метаданные.Роли.МенеджерПоЗакупкам) Или РольДоступна(Метаданные.Роли.МенеджерПоПродажам) Или РольДоступна(Метаданные.Роли.ЗаведующийСкладом))Тогда Отказ = истина; Возврат; КонецЕсли; КонецПроцедуры |
|||
23
Nuobu
06.06.16
✎
16:48
|
(22) Ну, на будущее - делай не так, как ты здесь описал, а наоборот - прописывай все роли, кому можно пользоваться отчетом.
Лучше было бы сделать отдельную роль "ПользовательКомуМожноПользоватьсяОтчетом" и раздать эту роль конкретным пользователям. И проверять так: Если НЕ (РольДоступна("ПолныеПрава") ИЛИ РольДоступна("ПользовательКомуМожноПользоватьсяОтчетом") Тогда Отказ = Истина; КонецЕсли; А в твоём случае - если у пользователя с полными правами будет роль "МенеджерПоЗакупкам", то он универсальным отчетом воспользоваться не сможет. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |