gifts2017

Интерактивные права на доступ к объектам (beta)

Опубликовал Игорь (itmind) в раздел Администрирование - Защита, права, пароли

Назначение прав пользователям на доступ к документам и справочникам из пользовательского режима без использования ролей.
(Тестировалась на УПП)

Часто приходится довать пользователям уникальные права на различные действия с документами и справочниками.

Использование стандартного механизма ролей в 1С:Предприятие 8.х для этих целей не подходит по нескольким причинам:

1. Накладно создавать для многих пользователей свою уникальную роль, особенно если общее число пользователей больше 100

2. Так как ответственность пользователей часто меняется, им делегируют права, то постоянное изменение конфигурации при >25 распределнных базах (которые тоже нужно обновить) отнимает ценное время.

Всвязи с вышеперечисленным было решено разработать систему интерактивного назначения прав на документы и справочники. (ненашел такой подситемы для 1с 8.1)

Ограничения реализованны на уровне подписок на события и задются для конкретного пользователя и группы пользователей с помощью обработки "Редактирование доступа к объектам"

 

Теоретически подсистема будет работать на любой стандартной конфигурации (проверялась и внедрена в УПП). При объединении снимите галочку со справочника "Пользователи" и не забудьте проставить права на чтение для всех, на все объекты подсистемы.

P.S. Подсистема простенькая, потому что нужна была очень срочно. В дальнейшем будет дорабатываться или может кто нибудь из сообщества доведет ее до ума.

P.S.S. Ограничение "Просмотр" не реализованно еще.

 

Скачать файлы

Наименование Файл Версия Размер
- 278
.1246943382 104,25Kb
25.09.09
278
.1246943382 104,25Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. sound sound (sound) 06.07.09 08:47
Еще не смотрел, но тема больная. Плюсик ставлю авансом
2. sound sound (sound) 06.07.09 10:31
Вот тоже хотел свой динамический интерфейс развивать в этом направлении. Слушай вот еще бы подумать в сторону назначения прав для групп пользователей, было бы очень чудесно!
3. sound sound (sound) 06.07.09 10:44
если быть точнее для справочника "Группы пользователей"
4. sound sound (sound) 06.07.09 10:53
а вот в функции Функция ЕстьДоступ(ТипДоступа,Пользователь,Метаданные)
вместо
Возврат РезультатЗапроса.Парам;
надо наверно написать
Возврат РезультатЗапроса[0].Парам;
у тебя же РезультатЗапроса - это таблица значений
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
или я не прав?
5. sound sound (sound) 06.07.09 10:58
вообщем довести бы это дело...
6. sound sound (sound) 06.07.09 11:19
ээх по моему маловато событий у подписок
7. igorCool (itmind) 06.07.09 13:14
8. sound sound (sound) 06.07.09 13:16
уже хорошо, чо насчет групп? :)
10. sound sound (sound) 06.07.09 15:10
(9) дак в том то и дело, что

"В те формы справочников, гду нудно запретить открытие и т.д нужно вставить в процедуру "ПередОткрытием" глобальну процедуру:"

Вот если б можно было на все окна, по контексту, повесить подписку на событие "ПередОткрытием" а не писать в каждом справочнике и документе, тогда бы было гут...
11. ROM (ROM_1C) 06.07.09 15:16
(10)ага..
базу можно пропадчить.. (выгрузить все модуля в текстових, обработкой пербрать, вставить все что нужно, и загрузить обратно)..
12. Vasily Kushnir (vasilykushnir) 06.07.09 15:41
Нечто подобное у меня на 7-ке.
Куда выположить скрин?
13. sound sound (sound) 06.07.09 15:46
(11) ну это как самое простое решение просто, взять и скопом сделать. А потом предупредить строго настрого всех программистов, чтобы в каждую форму вставляли пару строк :)
14. ROM (ROM_1C) 06.07.09 16:06
(11) ну это дело принципа..
(10) возьми редактировать, там есть картинки - там и добавляеш...
15. igorCool (itmind) 07.07.09 09:11
Добавил возможность установки ограничений по группам пользователей. Исправил несколько багов в обработке
16. Asdam (Asdam) 07.07.09 09:29
В подписках очепятки или так задумано?:
ДоступП(р)ометкаУдаления
ДоступСправочникП(р)ометкаУдаления
17. sound sound (sound) 07.07.09 13:54
(15) а не хочешь сделать, чтобы взял создал чистую базу, загрузил с полной заменой твою конфу (а не объединять с типовыми), и чтоб можно было потыкаться.
Думаю любой здавомыслящий чел вряд ли станет ставить на живую базу такие штуки.
А то когда выскакивает на чистой базе:
Пользователь = <<?>>глЗначениеПеременной("глТекущийПользователь");
сразу всякое желание юзать ЭТО пропадает.
Я понимаю, это быстро лечится, но вот оно мне надо?
Или дт-шник чтоли выложи с примером
18. Александр Медведев (anig99) 07.07.09 22:08
(17) это духи стырых версий типовых конфигураций
19. AHgpuXa (AHgpuXa) 08.07.09 09:24
Назначение прав по пользователям/должностям
http://infostart.ru/projects/4527/
20. sound sound (sound) 08.07.09 10:00
(19) Да видел я и твои деяния, но по подпискам мне кажется более логичным, хоть у них и маловато событий.
В общем, что могу сказать: что одно что другое что третье - сплошное "можно делать так", ну то есть ни одной полнофункциональной версии. Идеи то хорошие, только бы до ума довести..
21. AHgpuXa (AHgpuXa) 08.07.09 11:28
(20) Согласен. Если внимательней присмотреться, то можно увидеть что все что можно было прицепить к подпискам реализовано подписками :)
Мой вариант взят с рабочей конфигурации, но так она далека от типовой, никак руки не дойдут допилить до какой нибудь полнофункциональной версии.
22. sound sound (sound) 08.07.09 11:35
(21) Как руки дойдут, отпишись :)
23. Roman Biblbox (mr zafod) 08.07.09 22:05
решение по подпискам на открытие формы найдено не так давно - это ВК, генерирующая события при открытии дочернего окна 1С, она передает заголовок окна числом или hwnd - процедуа ЕДИНСТВЕННОГО внесенного в конфу доп.модуля получает по заголовку окно и собственно форму, затем через DOMDocument определяется основной реквизит формы и все остальные.
Результат - вы получаете форму объекта (либо любую другую) перед открытием (по сут пользователю можно запретить открыть даже калькулятор), получаете основной реквизит формы, а он может быть СправочникСписок или же ДокументОбъект, ну дальше дело техники - прикрутить сюда какой нибудь справочник с правами пользователей.
А вообще до полноценной 8.2 с ее суперкомандным интерфейсом уже недалеко, поэтому я думаю скоро это все станет не актуально.
24. sound sound (sound) 09.07.09 15:38
(23) и что же это за ВК если не секрет
25. Roman Biblbox (mr zafod) 09.07.09 16:58
мы заказывали ее в НИИ Автоматизации у программеров на шарпе при автоматизации одного холдинга. А вообще нечто подобное (в зачатке) я встречал здесь на ИС.
А как, мне интересно при выводе в отчет для пользователя фильтруются контрагенты?
26. Василий Сидоров (Bambrlog) 22.07.09 09:52
1с 8.1 УТ 10.3.7.8
ошибка
{Обработка.РедактированиеДоступаКОбъектам.Форма.Форма(28)}: Метод объекта не обнаружен (ГруппыПользователя)
Запрос.УстановитьПараметр("ГруппыПользователя",ДоступКОбъектам.ГруппыПользователя(ВыбранныйПользователь));
27. Иван (iones) 02.04.10 16:34
P.S.S. Ограничение "Просмотр" не реализованно еще.

Так как еще событие перед открытием или открытие отсутствует в 1С, предлагаю вот эту обработку парсинг модулей: http://infostart.ru/public/64952/?sphrase_id=2227
Можно по выбору вида формы подставить однотипно процедуру, которая будет проверять открытие формы. Я уже реализовавыл такое.
Один минус, жесткое вмешательство в конфигурацию... вынести отдельно пока никак.
28. Иван (iones) 20.09.12 11:04
Имеется решение открытия большей части форм элементов, это вмешательство в одну процедуру:
Общий модуль: МеханизмНумерацииОбъектов
Процедура: УстановитьДоступностьПоляВводаНомера

При открытии почти всех типовых документов и справочников, ссылается на эту процедуру, с передачей параметра "ФормаОбъекта".
Так что пока-что самое удачное решение выявления открытия элемента базы.