МенеджерПользователейИнформационнойБазы.СоздатьПользователя

Методы · CreateUser

Создает описание нового пользователя информационной базы. Для внесения пользователя в список следует после заполнения свойств нового пользователя использовать метод Записать объекта ПользовательИнформационнойБазы.

Синтаксис

СоздатьПользователя()
Полное описание, параметры и ограничения

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

МенеджерПользователейИнформационнойБазы (InfoBaseUsersManager)

СоздатьПользователя (CreateUser)

Доступен, начиная с версии 8.0.

Синтаксис:
СоздатьПользователя()
Возвращаемое значение:
Тип: ПользовательИнформационнойБазы.

Описание:

Создает описание нового пользователя информационной базы. Для внесения пользователя в список следует после заполнения свойств нового пользователя использовать метод Записать объекта ПользовательИнформационнойБазы.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Разделить способы аутентификации в черновике

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

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.

  2. Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.

  3. СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.

  4. Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.

УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
    ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
Черновик.АутентификацияOpenID = Ложь;
Черновик.АутентификацияOpenIDConnect = Ложь;
Черновик.АутентификацияQRКодом = Ложь;
Черновик.АутентификацияТокеномДоступа = Ложь;
Черновик.АутентификацияЧерезЭлектроннуюПочту = Ложь;
Сообщить(Не Черновик.АутентификацияСтандартная);
Сообщить(Не Черновик.АутентификацияОС);
Сообщить(Не Черновик.АутентификацияOpenID);
Сообщить(Не Черновик.АутентификацияOpenIDConnect);
Сообщить(Не Черновик.АутентификацияQRКодом);
Сообщить(Не Черновик.АутентификацияТокеномДоступа);
Сообщить(Не Черновик.АутентификацияЧерезЭлектроннуюПочту);
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));

Разбор по шагам

  1. Стандартная аутентификация и ОС отключены при создании этого черновика; остальные пять явно задаём отдельно.

  2. OpenID и OpenID Connect — разные поля; не включайте одно вместо другого по сходству имени.

  3. Адрес почты не создаёт почтовый способ входа, а флаг токена не выдаёт токен доступа.

  4. Изменены только поля нового описания в памяти. Способы входа реальных пользователей и общие настройки ИБ не трогаются.

Как проверить результат

  1. Семь сравнений Истина. Это состояние незаписанного черновика, не результат проверки настоящего входа.

  2. Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.

Ожидаемый результат

Показаны самостоятельные флаги семи способов входа без их реального применения.

На что обратить внимание

  1. Нельзя записывать такой черновик как готового пользователя: способы входа и роли не подготовлены.

  2. Включение флага само по себе не настраивает провайдера или сервер аутентификации.

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

Сохранить предупреждения об опасных действиях в черновике

В собственном описании явно оставляем предупреждение включённым. Это не выдача разрешения на внешний код и не отключение защиты рабочего пользователя.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Используйте отдельную учебную базу с именем конфигурации Учебная85. Работайте под учебным администратором, которому доступно чтение и создание описаний пользователей.

  2. Создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте в тело своей экспортной процедуры и запустите учебной командой.

  3. СоздатьПользователя создаёт описание, не запись списка пользователей. В коде намеренно отсутствуют Записать и Удалить: права, пароли и аутентификация существующих людей не меняются.

  4. Не добавляйте Записать к этим черновикам: для реального создания учётной записи нужны отдельная проверка ролей, способов входа и действующих политик.

УчебноеИмя = "Черновик_" + Строка(Новый УникальныйИдентификатор);
Если ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) <> Неопределено Тогда
    ВызватьИсключение "Учебное имя уже занято: черновик не создаётся";
КонецЕсли;
Черновик = ПользователиИнформационнойБазы.СоздатьПользователя();
Черновик.Имя = УчебноеИмя;
Черновик.ПолноеИмя = "Учебный незаписанный пользователь";
Черновик.ПоказыватьВСпискеВыбора = Ложь;
Черновик.АутентификацияСтандартная = Ложь;
Черновик.АутентификацияОС = Ложь;
Предупреждения = Черновик.ЗащитаОтОпасныхДействий;
Предупреждения.ПредупреждатьОбОпасныхДействиях = Истина;
Черновик.ЗащитаОтОпасныхДействий = Предупреждения;
Сообщить(Черновик.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях);
Сообщить(Предупреждения.ПредупреждатьОбОпасныхДействиях);
Сообщить(ПользователиИнформационнойБазы.НайтиПоИмени(УчебноеИмя) = Неопределено);
Сообщить(Черновик.УникальныйИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000"));

Разбор по шагам

  1. ЗащитаОтОпасныхДействий возвращает описание настройки предупреждений пользователя.

  2. Работаем с объектом нового незаписанного описания, не с ТекущийПользователь и не с найденным сотрудником.

  3. ПредупреждатьОбОпасныхДействиях оставляем Истина: упражнение не учит отключению предупреждений.

  4. Внешняя обработка, расширение или опасная функция не запускаются; настоящий диалог предупреждения проверяется отдельным сценарием.

Как проверить результат

  1. Две проверки Истина: оба пути показывают включённое предупреждение.

  2. В текущем сеансе не появляется новый диалог и не выдаётся разрешение на внешний код.

  3. Две последние проверки Истина: имя не появилось в списке, UUID черновика остался нулевым.

Ожидаемый результат

Черновик подготовлен с включённым предупреждением об опасных действиях.

На что обратить внимание

  1. Настройка предупреждения не является песочницей и не гарантирует безопасность произвольной обработки.

  2. Включённый флаг незаписанного описания не меняет настройки защиты уже работающего пользователя.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.