Удаляет указанную роль из коллекции используемых ролей пользователя.
Синтаксис
Удалить(<Роль>)Полное описание, параметры и ограничения
РолиПользователя.Удалить (UserRoles.Delete)
РолиПользователя (UserRoles)
Удалить (Delete)
Доступен, начиная с версии 8.0.
Синтаксис:
Удалить(<Роль>)
Параметры:
<Роль> (обязательный)
Тип: ОбъектМетаданных: Роль.
Удаляемая роль.
Описание:
Удаляет указанную роль из коллекции используемых ролей пользователя.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Подготовить роли незаписанного пользователя
Добавляем собственную учебную роль, проверяем членство и удаляем её из черновика. Коллекция ролей реального пользователя не используется.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.
Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.
СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.
Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.
В учебной конфигурации создайте роль УчебноеЧтение с правом чтения только собственного учебного справочника. Не используйте ПолныеПрава.
УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
РольЧтения = Метаданные.Роли.Найти("УчебноеЧтение");
Если РольЧтения = Неопределено Тогда
ВызватьИсключение "Создайте только собственную учебную роль УчебноеЧтение";
КонецЕсли;
Черновик.Роли.Очистить();
Сообщить(Не Черновик.Роли.Содержит(РольЧтения));
Черновик.Роли.Добавить(РольЧтения);
Сообщить(Черновик.Роли.Содержит(РольЧтения));
Черновик.Роли.Удалить(РольЧтения);
Сообщить(Не Черновик.Роли.Содержит(РольЧтения));
Черновик.Роли.Добавить(РольЧтения);
Черновик.Роли.Очистить();
Сообщить(Не Черновик.Роли.Содержит(РольЧтения));
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));Разбор по шагам
Роль — объект метаданных. Находим точное собственное имя, проверяем отсутствие до передачи в коллекцию.
Содержит получает сам объект роли, а не её подпись или строковый индекс.
Добавить, Удалить и Очистить изменяют только коллекцию нового незаписанного описания.
У реального пользователя роль влияет на доступ вместе с другими ролями и ограничениями; здесь вход и RLS не проверяются.
Как проверить результат
Четыре сравнения членства Истина.
После последней очистки собственная роль не содержится в черновике. Существующие права не поменялись.
Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.
Ожидаемый результат
Отработаны четыре метода РолиПользователя на собственном описании.
На что обратить внимание
Не заменяйте Черновик на ТекущийПользователь или найденного сотрудника: это другой объект и другой риск.
Членство в роли не является доказательством фактического доступа через RLS.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.