0. Stim213 376 03.09.14 17:30 Сейчас в теме

Некоторые особенности работы с настройками прав доступа пользователей в типовых конфигурациях на управляемом приложении

Разработчики в управляемых приложениях применили новый механизм настройки прав доступа, о которых и пойдет речь.
Будут перечислены все те грабли, которые собрал автор, чтобы вы о них знали.

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

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо
1. TMV 14 04.09.14 15:15 Сейчас в теме
(0) Оформление бы поправили, а так любопытно.
user777757; newgluk; +2 Ответить
2. gull22 87 10.09.14 10:13 Сейчас в теме
Спасибо за информацию. Плюс
3. Yimaida 35 10.09.14 12:36 Сейчас в теме
Несмотря на небольшой объем, статья достаточно содержательная. Картинки добавили бы жизни к оформлению, так же как и раскраска кода. А оформление примера кода в обработку принесло бы автору sm.
В любом случае +.
4. alyaev.a.v 10.09.14 11:50 Сейчас в теме
Инфа полезная, но оформить бы.
5. Yurcha62 77 10.09.14 08:26 Сейчас в теме
А воспользоваться обработкой "ИнструментыРазработчикаОбновлениеВспомогательныхДанных" из БСП не судьба? Зачем изобретать велосипед?
6. Stim213 376 10.09.14 12:44 Сейчас в теме
(5) Yurcha62, Обработка, безусловно, полезная, и ею стоит пользоваться, как многими другими, но только после того, когда знаешь, что она делает и зачем. В данной небольшой статье я и постарался принести это знание.
user659168_xec8787; user777757; mikeA; CyberCerber; monkbest; +5 Ответить
7. meganibler 70 10.09.14 13:55 Сейчас в теме
Спасибо за статью.
Недавно потратил полдня, чтобы выяснить ровно то, что здесь описано.

Теперь, при добавлении новых объектов план действий такой:
1) Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
2) Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры(ЕстьИзменения, ТолькоПроверка);
в УТ11 можно и так:
ПользователиСлужебный.ОбновитьПараметрыРаботыПользователей(ЕстьТекущиеИзменения, ТолькоПроверка);
3) Редактировать профили групп пользователей

JohnyDeath; chmv; ddd_l; +3 Ответить
10. Поручик 4360 17.09.14 11:50 Сейчас в теме
(7) А ещё связки этих процедур срабатывают при изменении версии конфигурации.
VasMart; drygina; +2 Ответить
11. AlexandrIII 01.11.14 13:56 Сейчас в теме
(7) А ещё связки этих процедур срабатывают при изменении версии конфигурации.


На ИТС об этом пишут в доках по внедрению/разработке БСП:

- для обновления разделенных вспомогательных данных (разных для каждой области данных) вызывается процедура ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации, которая по составу зарегистрированных изменений неразделенных вспомогательных, обновляет таблицы групп доступа, вспомогательную часть прав по значениям доступа, поставляемые профили групп доступа, помечает на удаление группы доступа, у которых предопределенные профили были удалены и помечены на удаление при обновлении конфигурации базы данных.

Соответственно в процессе разработки необходимо учитывать, что для «вступиления в силу» перечисленных изменений необходим запуск обработчиков (перед проверкой текущей разработки).

Обычно, для этого требуется изменить версию конфигурации на следующую. Для повторных запусков обработчиков следует изменять версию в регистре сведений ВерсииПодсистем на предыдующую.

user811769; drygina; +2 Ответить
16. Spacer 298 05.01.16 14:27 Сейчас в теме
(7) meganibler, что-то мне это не помогает.:(
Добавил свою роль, обновил справочник "ИдентификаторыОбъектовМетаданных",
обновил константу "ПараметрыРаботыПользователей", отредактировал профили групп доступа,
а роль у пользователя так и не появилась.
amatoravg; solary; real_MaxA; mm_84; +4 Ответить
20. Gureev 17.11.16 23:31 Сейчас в теме
(16) Spacer,
Добавил свою роль, обновил справочник "ИдентификаторыОбъектовМетаданных",
обновил константу "ПараметрыРаботыПользователей", отредактировал профили групп доступа,
а роль у пользователя так и не появилась.


надо пометить группу доступа на удаление, и снять пометку.
Так бывает когда группы созданы до того, как выполнены эти действия.
Student1C; cheiser1982; boardone; Orlando Skibraves; +4 Ответить
8. monkbest 104 10.09.14 15:07 Сейчас в теме
Отличная статья. Жаль что в 3.0ных решениях есть еще грабли. Недавно на них наступил на примере ЗУП 3.0.
Коротко следующее:
Я хотел дать пользователю права на один отчет. Все оказалось не так просто.

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

Еще добавлю по другой задаче, там надо было дать доступ к документу "кадровый перевод".
Проблем в том, что многие роли используются еще и как флажки. Т.е. они не содержат в себе прав совсем. Просто при открытии документа анализируется кодом наличие этой роли у пользователя и в зависимости от этого рисуются или НЕ рисуются элементы управления.
таким образом создание своей роли с доступом к документу не позволяет его нормально открыть, приходится править код, что считаю недопустимым при настройке прав, но выхода нет.

И вообще в ЗУП 3.0 более 140 ролей типовых - они в 1С совсем охренели.
freeek; AndreykO; CratosX; nikolka75; ZVN; mikeA; Ksho; tvark; Дмитрий74Чел; +9 Ответить
12. trumanl 11 25.11.14 17:10 Сейчас в теме
(8) monkbest, в ЗУП 3.0 если быть точным, 243 роли !!!! это кошмар какой-то.
на каждый "пшик" - роль.
13. monkbest 104 26.11.14 11:16 Сейчас в теме
(12) trumanl, видимо, от релиза к релизу их число растет:)
9. Lapitskiy 905 12.09.14 04:31 Сейчас в теме
Вот здесь я подробно с картинаками описывал: статья про УТ 11
14. ZhokhovM 397 25.02.15 15:58 Сейчас в теме
Минус за плохое оформление.
15. stas1kbob 68 20.03.15 15:52 Сейчас в теме
статья хорошая! будет ли обновление? 1сники что- то заново нагородили в ролях
17. chmv 11.02.16 09:59 Сейчас в теме
18. Strange Device 307 14.08.16 21:18 Сейчас в теме
При работе с правами, похоже, есть еще одна хитрость, если у пользователя установлены Полные права, а Вы хотите добавить права, которые будут работать отдельно, скажем, на новые реквизиты конфигурации хотелось бы задавать права полностью отдельно, то бишь независимо от наличия или отсутствия полных прав у пользователя, то оказывается, что установка галки в базе данных не изменяет доступность данной дополнительной роли в конфигураторе :-( , то бишь приходится либо самому устанавливать эту галку в конфигураторе, либо отказываться от таких "дополнительных" прав. При этом, если полных прав у пользователя нет, то все работает нормально. Данное замечание актуально не только для дополнительных прав, но и для типовых... Идея, конечно понятна, зачем нужна куча галок, если достаточно одной "ПолныеПрава", но честно сказать такой вариант несколько затрудняет администрирование дополнительных объектов...
Terve!R; freeek; AndreykO; Дмитрий_кдс; doda666; HLighter2; onetone; Асов; CratosX; amatoravg; Yakud3a; solary; fr13; svilsa; +14 Ответить
21. solary 168 31.01.17 08:21 Сейчас в теме
(18)
установлены Полные права, а Вы хотите добавить права, которые будут работать отдельно, скажем, на новые реквизиты конфигурации хотелось бы задавать права полностью отдельно, то бишь независимо от наличия или отсутствия полных прав у пользователя, то оказывается, что установка галки в базе данных не изменяет доступность данной дополнительной роли в конфигураторе :-( , то бишь приходится либо самому устанавливать эту галку в конфигураторе, либо отказываться от таких "дополнительных" прав. При этом, если полных прав у пользователя нет, то все работает нормально. Данное замечание актуально не только для дополнительных прав, но и для типовых... Идея, конечно понятна, зачем нужна куча галок, если достаточно одной "ПолныеПрава", но честно сказать такой вариант несколько затрудняет админист


Спасибо! А я всю голову сломал, что не так.
31. 7OH 32 04.09.19 14:29 Сейчас в теме
(18) Да, если есть ПолныеПрава - другие удаляются при записи профилей или групп.
Как это красиво обойти БЕЗ добавления в коде "ИЛИ РольДоступна("МоиПолныеПрава")" ?
32. Terve!R 11.11.19 13:48 Сейчас в теме
(31) так роль не будет доступна, в конфигураторе все галки с доп ролей снимаются((
Замучился уже ставить галки на место.
Видимо придется убирать полные права у всех, но у администратора то они должны быть, получается все равно галка у доп роли будет слетать?((
Может найти где-то это место где удаляются эти галки при записи профиля ролей?

Вот нашел тут решение:
Создать группу ролей по нужной роли и в коде РольДоступна("МояРоль") менять на РольДоступнаПоГруппе("МояРоль")
19. nadegda-tere 06.10.16 07:33 Сейчас в теме
Обновление константы:
Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры();

Отрабатывает только при установке монопольного режима. Поэтому чтобы собственные роли отработали (встали галочки у ролей в конфигураторе) при создании пользователя потребуется зайти в монопольном режиме.
Как этого можно избежать?
22. ya.Avoronov 109 13.02.17 10:57 Сейчас в теме
Очень полезная статья, спасибо!
23. fokin 11.05.17 18:18 Сейчас в теме
просто мрак
из простого и доступного метода сделать дикие грабли

а за статью спасибо, помогло
Stivens; Асов; +2 Ответить
24. uno-c 116 28.06.17 20:26 Сейчас в теме
Теоритически таких профилей можно создать сколько угодно много с различным набором ролей( N*(n-1), где N - количество ролей)

Теоретически количество профилей с различным набором ролей =2^N, в т.ч. однин пустой профиль (без ролей)
25. psy_sln 19.07.17 10:12 Сейчас в теме
Спасибо за статью, роль добавил, взлетело. Но есть такой вопрос: моя новая роль должна открывать доступ к одному справочнику с использованием RLS, т.е. хотелось бы заполнять вкладку "Ограничения доступа" для моего справочника, но не понятно как будут передаваться значения от туда в шаблоны RLS... Буду рад любой информации по данной теме :)
26. servisbox 16 28.11.17 08:31 Сейчас в теме
Отлично, благодарю. Инфа то, что нужно, второй день ковырял сам, пока не наткнулся на Вас.
27. Sergoninfostarru 2 07.04.18 01:09 Сейчас в теме
Хорошая статья. А как поступать с разными доступами до ролей для пользователя, созданного в Конфигураторе и пользователя, созданного в Предприятии? На примере УТ : в Конфигураторе - до 40 доступных ролей (Администратор системы, ..., Чтение электронных документов) можно выбрать для пользователя, созданного в Конфигураторе, а для Предприятия - можно выбрать только группу доступа - Администраторы, остальные группы нужно создавать самостоятельно.
Так получается, что сначала необходимо создать пользователя в Предприятии, а потом зайти в Конфигуратор и настроить доступные роли пользователя? Но тогда возникает большая проблема : если в Предприятии пользователя редактировали (например, изменили имя), то все настроенные доступные роли в Конфигураторе слетают и остается только "Администратор системы".
28. Stim213 376 07.04.18 08:36 Сейчас в теме
(27)
Лучший Отдать $m + – Ответить
27. Сергей (Sergoninfostarru) 2 07.04.18 01:09
Хорошая статья. А как поступать с разными доступами до ролей для пользователя, созданного в Конфигураторе и пользователя, созданного в Предприятии? На примере УТ : в Конфигураторе - до 40 доступных ролей (Администратор системы, ..., Чтение электронных документов) можно выбрать для пользователя, созданного в Конфигураторе, а для Предприятия - можно выбрать только группу доступа - Администраторы, остальные группы нужно создавать самостоятельно.
Так получается, что сначала необходимо создать пользователя в Предприятии, а потом зайти в Конфигуратор и настроить доступные роли пользователя? Но тогда возникает большая проблема : если в Предприятии пользователя редактировали (например, изменили имя), то все настроенные доступные роли в Конфигураторе слетают и остается только "Администратор системы".


Создавать пользователя и редактировать ему права надо исключительно в режиме Предприятия. Меняя права в конфигураторе вы рано или поздно поймаете обновление ролей и пользователю достанутся роли из Предприятия, а ваши, терпеливо созданные из Конфигуратора, благополучно очистятся.

1С считает, что раз у пользователя есть полные права(Администратор системы), то никаких других прав ему давать не следует. И это в общем-то логично. Но вы хотите для пользователей с полными правами вести раздельный управленческий учет.
Вариант: в Предприятии назначаете пользователю Полные права+ваши управленческие роли.И т.к. в Конфигураторе у пользователя будет только Полные права, заменяете свой код с РольДоступна("МояУправленческаяРоль") на функцию, которая определяет, есть ли для текущего пользователя группа с этой ролью РольДоступнаПоГруппе("МояУправленческаяРоль") .
33. Terve!R 11.11.19 13:50 Сейчас в теме
(28)
РольДоступнаПоГруппе("МояУправленческаяРоль")

Спасибо! Всю голову сломал уже с этими слетающими галками у пользователей с полными правами!
34. Terve!R 11.11.19 14:50 Сейчас в теме
(28) Стало понятнее, но вот только в УТ 11.4 не ничего такого типа "РольДоступнаПоГруппе"
Имелось ввиду, что нужно самому такую функцию писать?
29. johnnyshut23 53 30.04.18 21:55 Сейчас в теме
Хорошая публикация, спасибо! воспользуюсь!
30. leksv 12.03.19 16:00 Сейчас в теме
РодительРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоНаименованию("Роли");//ничего страшного искать по наименованию,

//справочник - служебный и непосредственного редактрования в нем нет
ИдентификаторМоейРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя","МояРоль",РодительРоли);

Почему то ошибка выходит при поиске по реквизиту. "Имя" = "БазовыеПрава"; "МояРоль" = "Базовые права" (тип ОбъектМетаданных)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Тольятти
зарплата от 70 000 руб.
Полный день

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

Ведущий программист 1С (с функцией наставничества)
Екатеринбург
зарплата от 100 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

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