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

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

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

Наверняка, уже все знают, что из себя представляет новая система, поэтому предистория вкрадце: Как было раньше( в обычном приложении): Есть документ. Есть Роли - ПолныеПрава, ДокументНетДоступа, ДокументТолькоЧтение, ДокументЧтениеИРедактирование. В конфигураторе(аналогичный механизм в реж предприятия) вы выставляете пользователям эти роли и у них появляются соответствующие права доступа на документ. Все просто и скучно и даже зевать хочется. С введением управляемого приложения разработчики решили усложнить(читается как расширить) настройки прав доступа. Теперь: Вводная та же. Чтобы дать пользователю какие-то права на документ - сначала вам необходимо создать элемент справочника Профили групп доступа. Это некий агрегирующий(суммирующий значения) объект, который объединяет роли в группы ролей. Теоритически таких профилей можно создать сколько угодно много с различным набором ролей( N*(n-1), где N - количество ролей), но на практике количество профилей определяется количеством должностных обязанностей пользователей в организации и их гораздо меньше, чем ролей. Создаем профили Бесправный(с ролью ДокументНетДоступа), Аудитор(с ролью ДокументТолькоЧтение), Бухгалтер(с ролью ДокументЧтениеИРедактирование).

Чтобы "привязать" эти профили к пользователям - нужно создать элементы справочника ГруппыДоступа. В типовых они создаются автоматически, когда вы отмечаете галочками профили для пользователя. Этот справочник соединяет профиль и пользователя(или нескольких пользователей). При записи этого элемента справочника система автоматически добавляет роли (из профиля) в роли пользователя. Поэтому не стоит напрямую редактировать роли в конфигураторе, как раньше - при редактировании прав в Предприятии все роли в конфигураторе будут обновлены на роли из профилей пользователя. Кроме того, будет наблюдаться явное противоречение между набором профилей с ролями и ролями, установленными в конфигураторе. Как хранятся роли в Профиле групп доступа, спросите вы. Ведь роли - это объекты МД, это не ссылочные типы. Отвечаю - для этого(и не только) разработчики создали служебный справочник ИдентификаторыОбъектовМетаданных, в котором хранится( в иерархии!) имена, синонимы, значения пустых ссылок всех объектов МД. Если вы хотите создать Профиль программно и добавить в него роль, то код примерно будет таким:

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

//справочник - служебный и непосредственного редактрования в нем нет

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

Если ЗначениеЗаполнено(ИдентификаторМоейРоли) Тогда

НайденныйИдентификаторМоейРоли = МойПрофиль.Роли.Найти(ИдентификаторМоейРоли );

Если НайденныйИдентификаторМоейРоли= неопределено тогда

НовСтрока = МойПрофиль.Роли.Добавить();

НовСтрока.Роль = ИдентификаторМоейРоли;

КонецЕсли;

КонецЕсли;

 Но если мы добавили новую роль в конфигурации, то как она попадет в справочник? Хороший вопрос. У справочника ИдентификаторыОбъектовМетаданных есть метод, позволяющий обновлять его данные. это: Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника(ИСТИНА,ЛОЖЬ,ЛОЖЬ);//ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка  Процедуру следует запускать каждый раз, когда вы вносите изменения в метаданные, особенно когда изменяете роли, объекты, связанные с новыми ролями. Отлично. Роль добавили, идентификаторы обновили. Но обратная связь не работает - вы в режиме предприятия назначили пользователю профиль( с созданием группы доступа), а роль у пользователя в конфигураторе не добавилась! Что делать? За синхронизацию ролей/профилей отвечает константа ПараметрыРаботыПользователей. Если роли не обновляются в конфигураторе, следует обновить ее значение: Константы.ПараметрыРаботыПользователей.СоздатьМенеджерЗначения().ОбновитьОбщиеПараметры(); Хорошо, скажите вы. А как быть, если я хочу создать группы доступа программно? Да не вопрос. Единственное ограничение - не допускаются дубли связок Профиль-Пользоваль в группах доступа. Примерный код будет таким:

//МойПрофиль - профиль, который мы хотим добавить пользователю МойПользователь

Если МойПрофиль = Справочники.ПрофилиГруппДоступа.Администратор Тогда // если мы хотим пользователю дать роль Администратора, 

//то нельзя создавать новую группу доступа, надо редактировать предопределенную Администраторы

ГруппаДоступаАдм = Справочники.ГруппыДоступа.Администраторы;

Если ГруппаДоступаАдм.Пользователи.Найти(МойПользователь) = неопределено Тогда

ГруппаДоступаАдмОб= ГруппаДоступаАдм.ПолучитьОбъект();

НовСтрока = ГруппаДоступаАдмОб.Пользователи.Добавить();

НовСтрока.Пользователь = МойПользователь;

ГруппаДоступаАдмОб.Записать();

КонецЕсли;

Иначе // все прочие профили, кроме Администратора

Запрос = новый Запрос;

Запрос.Текст = "ВЫБРАТЬ

|ГруппыДоступа.Ссылка

|ИЗ

|Справочник.ГруппыДоступа КАК ГруппыДоступа

|ГДЕ

|ГруппыДоступа.Профиль = &Профиль

|И (ГруппыДоступа.Пользователь = &Пользователь

|ИЛИ ГруппыДоступа.Пользователи.Пользователь = &Пользователь)

|И НЕ ГруппыДоступа.ПометкаУдаления ";

Запрос.УстановитьПараметр("Профиль",МойПрофиль);   

Запрос.УстановитьПараметр("Пользователь",МойПользователь);

Выборка = Запрос.Выполнить().Выбрать();

Если НЕ Выборка.Следующий() тогда //нет такого профиля, надо создать

МояГруппаДоступаОб = справочники.ГруппыДоступа.СоздатьЭлемент();

МояГруппаДоступаОб.Наименование = Строка(МойПрофиль);

МояГруппаДоступаОб.Пользователь = мойПользователь;

Нов = МояГруппаДоступаОб.Пользователи.Добавить();

Нов.Пользователь = МойПользователь;

МояГруппаДоступаОб.Профиль = МойПрофиль;

МояГруппаДоступаОб.Записать();

КонецЕсли; //Нет такого профиля

КонецЕсли;//профиль Администратор

После выполнения этого кода, если все, что нужно обновлено - типовая конфигурация добавит пользователю роли. Раз уж пошли по программному пути, вот код, который добавляет пользователя в справочник Пользователи и ПользователяИБ в ПользователиИнформационнойБазы:

ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();

ПользовательИБ.имя = "Иванов";

ПользовательИБ.ПолноеИмя = "Иванов Иван Иванович";

ПользовательИБ.АутентификацияСтандартная = ИСТИНА;

ПользовательИБ.Пароль = "";

ПользовательИБ.записать();

Пользователь = Справочники.Пользователи.НайтиПоРеквизиту("ИдентификаторПользователяИБ",ПользовательИБ.УникальныйИдентификатор));

если Пользователь.Наименование = "" Тогда

//создаем пользователя 

ПользовательОб = Справочники.Пользователи.СоздатьЭлемент();

ОписаниеПользователяИБ = Пользователи.НовоеОписаниеПользователяИБ();

ЗаполнитьЗначенияСвойств(ОписаниеПользователяИБ,ПользовательИБ);

ОписаниеПользователяИБ.УникальныйИдентификатор =  ПользовательИБ.УникальныйИдентификатор;

ПользовательОб.Наименование = ОписаниеПользователяИБ.ПолноеИмя; 

ОписаниеПользователяИБ.Вставить("Действие","Записать");

ПользовательОб.ДополнительныеСвойства.Вставить("ОписаниеПользователяИБ",ОписаниеПользователяИБ);

ПользовательОб.записать();

 КонецЕсли;

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

Начать дискуссию

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

Меня на этот пост вдохновил вопрос пользователя в телеграм-канале. Она попросила помощи в заполнении упрощенной отчетности и уточнила — справится ли она сама, если она не бухгалтер? И, правда, а можно ли вести учет и при этом не иметь образования бухгалтера и всему научиться самому.

Иллюстрация: Вера Ревина/Клерк.ру
135

Курсы повышения
квалификации

18
Официальное удостоверение с занесением в госреестр Рособрнадзора
Мошенничество

Сотрудник банка отдохнул за границей и обогатился за счет клиентки на 29 млн рублей

Сотрудники управления экономической безопасности и противодействия коррупции МВД по Ростовской области выявили факт многомиллионного мошенничества в особо крупном размере сотрудником банковской организации.

ВЭД

Три главных изменения 2024 года для бухгалтера ВЭД

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

Иллюстрация: Вера Ревина/Клерк.ру
1
259
Лучшие спикеры, новый каждый день

Обязательную маркировку ювелирных изделий перенесут на 2025 год

Чтобы снизить нагрузку с Пробирной палаты, которая будет ставить клеймо на украшения, Минфин перенесет срок обязательной маркировки на 1 сентября 2025 года.

С 1 мая запустят эксперимент по маркировке моторных масел

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

104

Календарь вебинаров для бухгалтера в апреле 2024. Акцент на проверки

Вебинар — простой способ разобраться в любом важном для бухгалтера вопросе. «Клерк» приглашает на вебинары экспертов-практиков, которые понятно и с примерами разберут любую тему. Вы можете задавать спикеру вопросы и он ответит на них в прямом эфире.

Иллюстрация: freepik/freepik
Опытом делятся эксперты-практики, без воды
Экспорт

Минпромторг сократит список экспортеров, которые могут получать транспортные субсидии

Изменения затронут только тех, кто занимается экспортом товаров из высокомаржинальных групп.

С 01 апреля 2024 года порог беспошлинного ввоза товаров, возможно, вернется к уровню €200 евро

Но подготовка новых документов не началась.

УК РФ

Опасное производство 2 года работало без лицензии и получило доход 26 млн рублей

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

Обеспечительные меры при ВНП, предварительные обеспечительные меры + защитный лайфхак

Всегда ли налоговики могут наложить обеспечительные меры (арест) на имущество по результатам проверки?

Иллюстрация: Вера Ревина / Клерк.ру
7
117

Кто имеет право работать неполный день

Если у сотрудников есть основания для неполной занятости, работодатель должен установить удобный для работника график и снизить нагрузку.

Календарь вебинаров для бухгалтера в апреле 2024. Платные и бесплатные

Собрали для вас анонсы вебинаров на апрель 2024 года.

Миникурсы, текстовые и видеоинструкции для бухгалтеров

Каким числом выставлять счет-фактуру на аванс: бухгалтеры разбираются с формулировками в НК. «Ночной бухгалтер» № 1652

В телеграм-канале «Клерка» бухгалтеры спорили о том, какую дату указать в счет-фактуре на аванс — день получения аванса или любую из последующих пяти дней, которые даны на выставление документа. Истину нашли (вроде).

Иллюстрация: Вера Ревина/Клерк.ру
214
IT-компании

Яндекс запустил линейку нейросетей YandexGPT третьего поколения

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

57
Бесплатно с Архив документов

Сколько лет все-таки хранить кадровые документы? Мини-курс

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

Сколько лет все-таки хранить кадровые документы? Мини-курс
НДФЛ

В 2024 году ФНС разошлет уведомления на НДФЛ с процентов по вкладам за 2023 год

В 2024 году вкладчикам впервые необходимо будет уплатить НДФЛ с процентов от банковских вкладов за 2023 год.

Перерасчет имущественных налогов будут делать по-новому

Физлица будут направлять в ИФНС заявления на перерасчет налога на имущество, земельного и транспортного, к которому можно приложить документы, а можно и не прикладывать. Налоговики будут рассматривать это заявление 30 дней.

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

Обучение персонала — сложный и многогранный процесс. Если проводить его правильно, он может стать ключевым инструментом для усиления корпоративной культуры, увеличения продуктивности и стимулирования мотивации сотрудников.

Иллюстрация: создано с помощью ИИ OpenAI © Вера Ревина/Клерк.ру
5
64
УК РФ

Поиск бывшего гендира может вылиться в вымогательство

Сотрудники главного управления уголовного розыска МВД совместно с коллегами из Красноярского края задержали подозреваемых в серии вымогательств у бизнесменов.

Интересные материалы

Обзоры новостей

⚡️Итоги дня: Ozon изменил расчет сбора, Дурова призвали внимательнее следить за Telegram, Камчатку трясет

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