0. itmind 246 10.04.19 09:50 Сейчас в теме

Подсистема динамических прав

Подсистема прав, позволяющая в реальном времени (без назначения ролей, перезапуска 1с, изменения конфигурации) менять права пользователя: Просмотр, Создание, Изменение, Проведение, Отмена проведения, Изменение проведенных, Неоперативное проведение. Существенно упрощает управление правами в базах с большим количеством пользователей. Версия платформы 8.3.12.1685.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Xershi 560 10.04.19 09:56 Сейчас в теме
Я так понимаю у всех админские права, которые режутся этим документом?
Затем кодом в каждом объекте проверяются права, что плохо скажется на производительности.
3. itmind 246 10.04.19 10:00 Сейчас в теме
(1) Да, режутся в подписках.
В нашем случае вообще ни как не сказывается на производительности (УПП размером 800 Гб, >300 пользователей, правда сервера мощные и база на ssd дисках).
Но и в общем не должно сказываться, в общем времени открытия/записи/проведения документов очень маленький процент на выполнение данного кода.
5. user-z99999 18 10.04.19 10:02 Сейчас в теме
(3)
По сути, вы уходите от Ролей и переходите на индивидуальные права для пользователей.
2. user-z99999 18 10.04.19 10:00 Сейчас в теме
Минус данного подхода в том, что если требуется изменения какого нибудь права на один объект из данного функционала, то придется обновлять конфигурацию. Это долго. Порой только на следующий день, а права нужны вот прямо сейчас.

А через Расширения можно до окончания рабочего дня добавить права пользователю,
а на следующий день их отключить т.к. необходимая Роль создана?
4. vynosmozga 5 10.04.19 10:02 Сейчас в теме
А профилем нельзя решить? Перезайдет в 1С и все.
7. itmind 246 10.04.19 10:07 Сейчас в теме
(4) Можно. Но нужно много ролей и их сложно администрировать.
Например одному пользователю можно проводить РТУ, другому нельзя, третьему нельзя их создавать но можно смотреть, четвертому можно отменять проведен.
Нужно 4 роли. Таких документов например 100. Получаем 400 ролей. Далее месяцами создаем 150 профилей в каждый подбирая из списка по 400 ролей.
Мы пробывали так, у админов глаза на лоб лезли от необходимости постоянно копаться в списке из 400 строчек.
Olenevod; StanAn; +2 Ответить
6. Xershi 560 10.04.19 10:04 Сейчас в теме
Кстати, если подсистема делалась только для того, что допилили новый док, а права не настроили.
То для этих целей создают вторую роль администратора, у которого забирают все права и ставят галку для новых объектов.
Тогда нужным пользователям эта роль назначается до момента настройки ролей. Потом эту роль просто также обнуляют и дело в шляпе. Так намного эффективнее!
sergathome; acanta; wowik; +3 Ответить
8. itmind 246 10.04.19 10:08 Сейчас в теме
(6) Не для этого. У нас есть общая роль, которая у всех и там автоматически встают права на новые объекты.
9. ellavs 367 10.04.19 10:25 Сейчас в теме
Используем похожий механизм: механизм "Администрирование прав объектов" в типовой конфигурации 1С:Университет (не могу точно сказать, является ли это механизмом БСП или разработчики сами его придумали). Там у них одна роль Пользователь, которой разрешено почти всё (но ниже, чем полные права). Создавать, а потом переделывать при каждом обновлении свои роли оказалось неудобно. Механизм "Администрирование прав объектов" также позволяет перенастраивать доступ "на лету" (можно сразу на группу пользователей).
Извращение, конечно, еще то, но конкретно в данной конфигурации оказалось удобно :)
Пример настройки прав:
Прикрепленные файлы:
acanta; JohnConnor; +2 Ответить
10. herres 10.04.19 10:28 Сейчас в теме
мы когда-то экспериментировали: пробовали программно создавать роли на чтение и запись каждого объекта. И потом обработкой раздавать пользователям. Дело было в УПП

Кончилось тем, что УПП запуститься не смогла - платформа падала
11. StanAn 10.04.19 13:23 Сейчас в теме
Игорь, а есть инструкция, как объединять со своей конфигурацией?
15. itmind 246 11.04.19 05:32 Сейчас в теме
(11) Для разных конфигураций свои особенности.
В обмен через сравнение объединение переносим все объекты (кроме справочников).
Для роли "все права" ставим разрешение на все объекты конфигурации и добавляем эту роль всем пользователям.

Находим процедуру, которая вызывается из всех форм и вставляем в нее вызов процедуры из подсистемы прав. Для УТ 11.4 можно например в УправлениеСвойствамиКлиент:

Процедура ПослеЗагрузкиДополнительныхРеквизитов(Форма) Экспорт
	
	//ИЗМ
	ИТК_ДоступКОбъектамКлиент.ПриОткрытииФормы(Форма);


Если в конфигурации нет профилей или они используются по другому, то внести изменения ИТК_ДоступКОбъектамСервер.СтруктураДоступа. (например просто удалить часть кода где используется профиль пользователя )
12. VmvLer 10.04.19 14:07 Сейчас в теме
при изменении существующей роли в конфигурации можно обновляться динамически.

представленные механизмы и скрины это технологии прав эдак до 2015.
современные методы ограничения прав вполне логичны и не глаза на лоб лучше выкатывать,
а грамотно работать с профилями.

сейчас не вижу причин навешивать на типовые профили и группы доступа своего троянского коня.
не удивлюсь, если если из этого коня полезут бокопоры.
13. StanAn 10.04.19 19:21 Сейчас в теме
(12) По моему, Вы совершенно не разобрались в сути вопроса и в причинах для чего это было сделано.
Пример - у вас есть документ, на который надо одному пользователю дать доступ только для просмотра, другому для создания только новых документов, но не без права изменения записанных, третьему право редактирования, но без права создания новых документов. четвертому - полный доступ, а пятому полный доступ до пятницы. При этом в типовой есть только роли "только чтение" и "полный доступ" на этот документ, которые, при этом еще предоставляют такой же доступ еще на пару видов документов из этой же подсистемы.
И вот давайте, теперь, расскажите, как Вы будете "грамотно" настраивать доступ на этот один только документ с помощью профилей не создавая 4-5 новых ролей?
14. itmind 246 11.04.19 01:16 Сейчас в теме
(12) Считаю, что динамически обновляться можно только в экстренных случаях. При каждом динамическом обновлении есть ряд проблем:
- У пользователей на "клиентах" закешированна конфигурация. После динамического обновления нужно удалить кеш конфигурации у пользователя. Допустим имеем 7 терминальных серверов и 500 пользователей. Получаем 3500 потенциальных кешей у пользователей (на каждого по 7) которые нужно очистить. Это займет определенное время. Время - деньги.
- Большая вероятность, что после динамического обновления перестанет работать обмен РИБ (относительно часто бывает и на больших и на маленьких базах). А обмен например должен ходить каждые 10-15 минут иначе проблемы. И придется выкидывать всех из перефирийки, накатывать туда конфигурацию. Это время, притом простой работы пользователей. Потеря денег.
- Небольшая вероятность того, что база просто сломается и перестанет запускаться. И тогда нужно работать с таблицами config и configsave и т.п. Это время и простой работы пользователей. Потеря денег.

Далее. Правами занимаются не программисты, а "администраторы 1с" (тех поддержка). Хотя бы потому, что это экономически не выгодно привлекать для этой работы программиста. Стоимость часа работы программиста и часа работы рядового "администратора 1с" различается порой в разы. А "администраторы 1с" - это просто продвинутые пользователи, которые не лезут в конфигуратор (да им и не дадут).

Следовательно для уменьшения затрат на администрирование прав нужна простая система, позволяющая не программисту легко и быстро (за 1-2 минуты) дать/забрать необходимые права.

Замерьте сколько времени вы будете создавать 200 профилей с помощью штатной системы прав и сколько с помощью предложенной. Думаю разница будет в несколько десятков тысяч рублей не в пользу штатной.

Относительно самой системы прав.

Часто бывают следующие задачи: срочно дать право на проведение документа одному сотруднику (при этом у других сотрудников той же должности и отдела права быть не должно) на 2 дня, потом убрать право. По штатной системе нужно ставить напоминалку в календарь "забрать права" и даже с напоминалкой постараться не забыть. А еще потратить время (изменить профиль, роль и т.д.). В предложенной подсистеме можно или сразу создать документ на необходимую дату, который отключит права. Или использовать поле "действует до" в документе и потом регламентным заданием по этому полю пометить документ на удаление в нужный день.

Или например вопрос: сотрудник пол года назад провел документ, компания понесла из-за этого убытки. Обнаружили только сейчас. Смотрят утвержденную матрицу прав на этого сотрудника - по ней не должно быть прав. Косяк 1сников, возмещайте ). Но у вас же делаются ежедневные бэкапы со сроком хранения пара лет? (у нас делаются) Мы можем поднять базу на нужный день и увидеть что именно в этот день у сотрудника были права. Поднимаем письма и видим, что права давались по указанию начальника и т.п. Т.е. в 1с проблем нет.
В предложенной подсистеме права фиксируются на дату документом. И поэтому всегда известно какие права были у сотрудника в конкретный момент времени (учитываем еще, что ведется версионирование документов).

Ну и хотелось бы увидеть от вас технологии и скрины 2019 года, которые решает вышеперечисленные проблемы )
DarkAn; AzagTot; acanta; +3 Ответить
16. VmvLer 11.04.19 08:42 Сейчас в теме
(14) Насчет динамического обновления только в экстренных случаях я не согласен - может 5-10 лет назад оно и было "демоническим", а сейчас его опасаться выглядит как-то параноидально. Проблема с кешами надумана или еще актуальна в УПП и прочих ИБ родом из нулевых.

По остальным аргументам, если вам проще работать со своей надстройкой над РЛС, то кто ж вам запретит - работайте. Я считаю, что проще полагаться на типовой и ваять свои профиля.
Юзеров около 300 и полный комплект ИБ линейки 1С. По правам мало когда бывают затыки, больше времени уходит на разгребание багов после очередного обновления ИБ, но так как вы еще на УПП, то вам вряд ли будет понятен этот абзац.
20. recon 33 11.04.19 14:21 Сейчас в теме
(16)Динамическое обновление было и есть демоническое - никогда не знаешь что у тебя потеряется
К примеру после трех динамических обновлений потерялись доработки формы - последовательность колонок на форме откатилась на несколько обновлений назад. И тут уже ничего не сделаешь - на сервере лежит именно такая конфигурация, а доработки формы потеряны. Самое страшное в этом всем - что понять что у тебя что то потерялось сразу не всегда возможно. Может и у вас что то потеряно но вы пока об этом не знаете ? )
7OH; Rego1337h; bugtester; +3 Ответить
44. Virikus 45 12.04.19 16:36 Сейчас в теме
(20) Это больше похоже не на динамическое обновление, а на поочередное обновление из разных конфигураторов.

Если на сервере отладка запущена от другой службы и на других портах. то вы можете одновременно запускать 2 конфигуратора в одной базе, если при этом вы обновитесь сначала в первом конфигураторе, а потом во втором, то все изменения из первого конфигуратора перезатрутся.
24. Darklight 17 11.04.19 14:56 Сейчас в теме
(16)Проблема ошибок кеша до сих пор актуальна - но решается флагом чистки кеша
47. 7OH 33 16.04.19 10:17 Сейчас в теме
(16) оно до сих пор не работает.
буквально через пару минут начинаются глюки.
Платформа 8.3.14, хотя заявлено решение было в 11 или 13-й.
48. DonAlPatino 53 16.04.19 11:31 Сейчас в теме
(16) RLS само по себе так тормозит, что очень хочется что-то другое и быстрое.
19. marku 62 11.04.19 14:19 Сейчас в теме
23. Darklight 17 11.04.19 14:55 Сейчас в теме
(14)Динамическое обновление ролей благославлено самой компанией 1С - они не кешируются! Можно обновлять без опасений!
45. triviumfan 10 13.04.19 08:48 Сейчас в теме
(12) А точнее из нулевых. Привет Рарусу, во всех их продуктах такая подсистема прав.
17. sergey-201 2 11.04.19 14:05 Сейчас в теме
а как рубится доступ к данным через запросы? если ранее у пользователя не было прав на таблицу остатков товара, то и отчет выдавался пустой. Или например как в скд, нет прав на просмотр таблицы, часть данных в отчет не выводится. Т.е. запрос режется платформой на основе ролей. А тут получается будет доступ на все?
7OH; bugtester; marku; +3 Ответить
30. itmind 246 12.04.19 01:04 Сейчас в теме
(17) (18) (25) Данная подсистема служит для ограничения только по документам и справочникам.
Разграничение по разрезам данных настроено через RLS. Т.е. пользователи видят только документы, относящиеся к их подразделению например.
Отчеты в основном используются внешние, а на внешние отчеты и обработки тоже настроено RLS. Таким образом пользователи могут запустить только доступные им отчеты.
Вариативные права, например право проведения документа до 11 часов должно быть только у начальника планово-экономического отдела и фин директора, а у остальных после 11, реализованы через систему "дополнительных прав" (УПП 1.3, УТ 10.3).
18. marku 62 11.04.19 14:15 Сейчас в теме
А к регистрам доступ тоже будет контролироваться? Данные получаемые отчетами как-то ограничивать можно?
21. dimonb123 11.04.19 14:26 Сейчас в теме
Какое-то непонятное, половинчатое решение. Позволяет ограничить только запись.
А построение управляемого интерфейса? Видимость команд? Просмотр справочников, документов, данные в отчетах?
7OH; bugtester; sergathome; +3 Ответить
22. sergathome 11.04.19 14:33 Сейчас в теме
(21) Нормальное решение в духе 1С. Суперкостыль. С недокументированными супернедостатками, как и полагается. ;))
rovenko.n; bugtester; +2 Ответить
26. Darklight 17 11.04.19 15:08 Сейчас в теме
(22)У 1С вообще с настройкой прав доступа всё очень печально на уровне платформы - один сплошной недостаток - и ничего не поделаешь - поэтому компаниям параноикам остаётся только накручивать много много подобных мегакостылей - в попытке закрыть все лазейки и запрещая использование всего, где этот костыль ещё не накручен (например касабеьно отчётов - использовать только свои доработанные отчеты, корректно проверяющие выводимые данные на разрешённый доступ уже во "время вывода" результата, а сами данные собирать и обрабатывать в привилегированном режиме приходится). А для большинство руководителей уже махнуло рукой на гибкое ограничение на просмотр информации (да и вообще на гибкую настройку прав доступа) - тут важнее чтобы лишнего в базе не изменили, а не то, чтобы не увидели!

Но всё-равно вот так вот индивидуально права очень геморрно расставлять. Но это уже другой вопрос.
27. sergathome 11.04.19 17:31 Сейчас в теме
(26) я вообще не понимаю, как народ в общем случае решает проблему с РЛС - оно ж тормозить начинает пипец как...
DonAlPatino; +1 Ответить
29. Rustig 1152 11.04.19 23:38 Сейчас в теме
(27) никак. а точнее уточняешь задачу до деталей и реализовываешь свой механизм. А ты как хотел?
36. sergathome 12.04.19 10:15 Сейчас в теме
(29) хотелось хоть какого-то универсализма. хотя бы на уровне совместимости РЛС с СКД... но и этого нет, мля. Видел фреймворки, на которых более логично это выглядит. но там других проблем навалом.
43. Rustig 1152 12.04.19 14:38 Сейчас в теме
32. Darklight 17 12.04.19 09:18 Сейчас в теме
(27)Если использовать аккуратно и по чуть-чуть - то оно вполне нормально работает. Тут главное параноей не страдать - по ограничению доступа к данным "всех и вся". Стараться делать, только интерактивные ограничения (к справочника и документам), и в, основном, только на изменения, а не на чтение. А если уж приспичит где-то делать ограничения на чтение или на неинтерактивные операции - то вот тут уже нужно костыли изобретать, если участок окажется критическим по производительности.
35. sergathome 12.04.19 10:11 Сейчас в теме
(32) Проблема, как всегда, в том, что мало кто готов сформулировать окончательные требования по ограничениям доступа до разработки схемы БД, а после оно в схему плохо ложится со всеми вытекающими... Но самая задница возникает когда ставится задача ограничить данные отчётов. РЛС на регистры - это ад.
37. Darklight 17 12.04.19 10:32 Сейчас в теме
(35)Вот поэтому я и сказал - RLS можно применять, но без паранои и в основном только на интерактивный доступ к изменениям (и как разделитель справочников и документов в формах списка)
38. sergathome 12.04.19 10:44 Сейчас в теме
(37) == платформа принципиально не годится для построения систем массового обслуживания ака личных кабинетов и тп. Справочник БСП "Внешние пользователи" является томлением духа и суетой...
39. Darklight 17 12.04.19 10:46 Сейчас в теме
40. sergathome 12.04.19 10:49 Сейчас в теме
(39) просто ною. любимая мозоль.
41. Darklight 17 12.04.19 12:02 Сейчас в теме
(40)Универсальных систем пока не придумали, да и вряд ли придумают, для людей, вообще когда-либо, не нойте! Работайте с тем, что есть. Развивайте. Предлагайте новое!
25. Darklight 17 11.04.19 15:01 Сейчас в теме
(21)Данные получаемые отчетами (при применении RLS) не может ограничить даже сама платформа по ролям в ряде случаев (я про бух регистры говорю).

А вообще мне интересно, как автор ограничил просмотр в формах даже без отчетов?
31. itmind 246 12.04.19 01:06 Сейчас в теме
(21) Не только запись. Еще просмотр, создание. Т.е. нельзя открыть документ посмотреть, если нет прав. Или можно открыть посмотреть, но новый создать нельзя (форма не откроется и выдаст ошибку).
33. dimonb123 12.04.19 09:34 Сейчас в теме
(31) А как это возможно с помощью подписок? Подписка на создание формы есть только для обработок. Или я чего-то не знаю?!

Впрочем проблему командного интерфейса так все равно не решить.
28. Rustig 1152 11.04.19 23:35 Сейчас в теме
10 лет на проектах что-то выдумываю для клиентов в плане прав. каждому индивидуально - универсально для всех пока никто ничего не придумал. типовой механизм профилей - слабая попытка решить вопрос. лучший способ - в контексте требований клиента реализовывать дополнительную функциональность. как с обувью - каждому свой башмак.
34. alalexmix 6 12.04.19 09:39 Сейчас в теме
Круто, НО администрировать такое - надо понимать все взаимосвязи, а это сделать рядовому "Администратору 1С" может быть и не под силу, а так как вариант...
42. acanta 48 12.04.19 12:15 Сейчас в теме
Допустим будет два плана счетов, одинаковых с разными правами и общая оборотка будет собираться как сумма этих двух (трех, пяти.. ) бухгалтерских регистров. Про двойную запись забываем как пережиток прошлого. Контроль и так программный. Как то не очень красиво.
Мне нравится такая система настройки прав доступа. Возможно, компоновка интерфейса на основе ролей без чтения объектов это интересно и ее есть куда развивать.
46. noname148 15.04.19 16:57 Сейчас в теме
Подобные решения уже есть во многих отраслевых конфигурациях. Например в БИТ_финанс есть настройка прав доступа на уровне базы. Часть проблем снимает, но задача разделения прав при чтении данных остается.
Прикрепленные файлы:
49. Ovrfox 13 17.04.19 10:53 Сейчас в теме
Мне вот интересно, что за бардак такой, что нельзя стандартизировать роди пользователей?
Насколько это проще, вообще ничего не надо, обратился к отделу качества, написали служебные инструкции, снадартизировали роли
И все!!!
Нужно что- то срочно поправить - есть отдел качества, он поправит за нерадивого сотрудника. Никому никакие права динамически менять не нужно.
rovenko.n; +1 Ответить
50. rovenko.n 17.04.19 23:03 Сейчас в теме
(49)Кстати, да. Сколько раз стыкались "у нас всё через одно отверствие, и мы не можем ничего сказать точно, никаких должностных инструкций нет, но нужен четкий учет". Так система вам учет не исправит. Что это за предприятие, на котором постоянно куча пользователей с разными правами, которых нельзя в группы поделить?
52. itmind 246 18.04.19 00:48 Сейчас в теме
(50) Все права один раз прописаны по должностям, никакого бардака нет в этом плане. Изменения прав бывают не часто.
Например есть подразделение, в котором только у бухгалтера есть право проводить ПКО. Бухгалтер уходит в отпуск. Право проведения ПКО на время отпуска бухгалтера дается какому то одному самому ответственному сотруднику. (естественно все права бухгалтера ему дать нельзя).

Подсистема предназначена большей частью для упрощения работы администраторов 1с (наглядность установки прав). Была попытка сделать все через роли (по 5-6 родей на объект), но скорость составления матриц прав по должностям, их контроль и изменение в этом случае упала в разы.
53. rovenko.n 18.04.19 01:15 Сейчас в теме
(52)В УПП нельзя давать несколько профилей юзеру?
51. rovenko.n 17.04.19 23:06 Сейчас в теме
В ЕРП сделано через набор ролей. К каждому документу/справочнику/регистру делается отдельно роль на создание/изменение, чтение или что-то уникальное. То, что дописываем, делаем точно так же. И потом изменить права никаких проблем нет. Кстати, в той же ЕРП есть пункты, в которых документ разделяется по пунктам доступа, но это скорее исключение (типа заявок на расход ДС, у которых есть инициатор и есть согласующие).
А если такое постоянно...
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 115 000 руб. до 160 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Новосибирск
зарплата от 80 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству