Создать пользователя в 1С можно программно, используя для этого средства встроенного языка платформы. В частности, для этого можно обратиться к глобальному контексту «ПользователиИнформационнойБазы».
Рассмотрим, как выполняется программное создание пользователя 1С.
Код 1С v 8.x:
НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя();
НовыйПользователь.Имя = "Имя";
НовыйПользователь.ПолноеИмя = "Фамилия Имя Отчество";
НовыйПользователь.АутентификацияСтандартная = Истина;
НовыйПользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Администратор;
НовыйПользователь.Пароль = "пароль";
НовыйПользователь.Роли.Добавить(Метаданные.Роли.Администратор);
НовыйПользователь.ПоказыватьВСпискеВыбора = Ложь;
НовыйПользователь.Язык = Метаданные.Языки.Русский;
НовыйПользователь.Записать();
Необходимо учитывать, что в свойство «Пароль» администратор сможет внести только новые данные. Определить личные сведения, внесенные в систему ранее, невозможно.
В 1С создание пользователя программно сможет выполнить только специалист с административными правами. При их отсутствии он сможет внести изменения только в небольшой список собственных данных. Предположим, на предприятии возникла необходимость предоставить рядовому пользователю возможность внесения новых участников, то есть изменить его роль в системе. Для этого можно создать обработку, в которой он сможет вносить имя, пароль и другие свойства для новых специалистов, которые будут работать в 1С. В этом случае добавление новых пользователей будет выполняться не на клиенте, а на сервере. Таким образом, информация о каждом новом сотруднике будет передаваться в виде параметра в процедуру привилегированного модуля.
Рассмотрим, как выполнить изменение роли пользователя.
Код 1С v 8.x:
Процедура ЗаписатьНовогоПользователя(НовыйПользователь) Экспорт
// Проверить наличие роли Администратор у нового пользователя.
РольАдминистратор = Метаданные.Роли.Администратор;
Если НовыйПользователь.Роли.Содержит(РольАдминистратор) Тогда
Сообщить("Добавление пользователя с административными правами запрещено");
Иначе // у нового пользователя нет роли Администратор
// Проверить, что текущий пользователь обладает правами Менеджера или Администратора.
Если РольДоступна(РольАдминистратор) ИЛИ РольДоступна(Метаданные.Роли.Менеджер) Тогда
// Выполнить запись нового пользователя.
НовыйПользователь.Записать();
Иначе
Сообщить("Недостаточно прав доступа для добавления пользователя");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
При внедрении приведенного выше скрипта важно учитывать один нюанс. В частности, если пользователь с измененной ролью попробует добавить участника с правами администратора, то выйдет запрет на совершение этого действия. Запись нового специалиста выполняется после системной проверки и подтверждения, что он является менеджером, а не администратором.
Рассмотрим, как удалить роль у пользователя.
Код 1С v 8.x:
Процедура Главная()
// Удаление роли у существующего пользователя
ИмяПользователя = "ФамилияИмяОтчество";
ПользовательИБ = v8.ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Если ПользовательИБ = Неопределено Тогда
Сообщить("Пользователь с таким именем не найден в базе.");
Иначе
ПользовательИБ.Роли.Удалить(v8.Метаданные.Роли.ПравоВнешнегоПодключения);
ПользовательИБ.Записать();
Сообщить("Роль удалена.");
КонецЕсли;
КонецПроцедуры
И, наконец, разберем, как удалить пользователя из системы.
Код 1С v 8.x:
Процедура Главная()
// Удаление пользователя.
ИмяУдаляемого = "Грозный И.В.";
ПользовательИБ = v8.ПользователиИнформационнойБазы.НайтиПоИмени(ИмяУдаляемого);
Если ПользовательИБ = Неопределено Тогда
Сообщить("Пользователь с таким именем не найден в базе.");
Иначе
ПользовательИБ.Удалить();
Сообщить("Пользователь удалён.");
КонецЕсли;
КонецПроцедуры
Оцените статью