Имя: Пароль:
1C
 
Программное создание пользователя 1с83
0 program345
 
13.02.15
11:32
добрый день!
Программно создаю пользователя.
код:
//
&НаКлиенте
Процедура новая(Команда)
    
    СоздатьПользователя();
    
КонецПроцедуры

&НаСервере
Процедура СоздатьПользователя()
    
    НП = ПользователиИнформационнойБазы.СоздатьПользователя();
    НП.Имя = "НовыйПользователь1";
    НП.Пароль = "123";
    НП.АутентификацияОС = Ложь;
    НП.РежимЗапуска = РежимЗапускаКлиентскогоПриложения.Авто;
    
    НП.Роли.Добавить("Роль1");
    НП.Записать();
    Сообщить("пользователь " + НП.Имя + " создан!");
    
КонецПроцедуры // СоздатьПользователя()

//
выдает ошибку
{Форма.Форма.Форма(18)}: Ошибка при вызове метода контекста (Добавить)
    НП.Роли.Добавить("Роль1");
по причине:
Несоответствие типов (параметр номер '1')

как исправить?
1 program345
 
13.02.15
11:33
или даже как получить тип РолиПользователя?
2 program345
 
13.02.15
11:33
СП не помог
3 Cube
 
13.02.15
11:35
(2) Позорище...

СП:

РолиПользователя.Добавить (UserRoles.Add)
РолиПользователя (UserRoles)
Добавить (Add)

Синтаксис:
Добавить(<Роль>)

Параметры:

<Роль> (обязательный)
Тип: ОбъектМетаданных: Роль.
Добавляемая роль.

Описание:
Добавляет используемую роль в коллекцию ролей пользователя.

Доступность:
Сервер, толстый клиент, внешнее соединение.
4 silent person
 
13.02.15
11:36
ТекущийПользователь.Роли.Добавить(Метаданные.Роли.Найти(Роль.Значение));
как то так по моему
5 silent person
 
13.02.15
11:37
ну всмысле
ТекущийПользователь.Роли.Добавить(Метаданные.Роли.Найти("Роль1"));
6 program345
 
13.02.15
11:41
(5) спасибо!