Имя: Пароль:
1C
 
Как кодом удалить роль у пользователей (обычные формы)
0 Shecurok
 
05.10.23
11:52
Всем добрый.
Необходимо у огромной массы пользователей удалить одну роль.

Пишу след код:

ПользователиМассив = ПользователиИнформационнойБазы.ПолучитьПользователей();  
	
	Для каждого СтрокаПользователи из ПользователиМассив Цикл 
		
// тут пока сделал проверку чисто по одному пользователю тестовому, потом условие будет другое		
		Если СтрНайти(СтрокаПользователи.ПользовательОС, "\\kry\testkry") Тогда		  
			  
				ИмяРоли = "МОЯ РОЛЬ"; // название тут конечно другое, своё внутрннее
				Роль = Метаданные.Роли[ИмяРоли];
				Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(СтрокаПользователи.ПолноеИмя);
				
				Если Пользователь <> Неопределено И Пользователь.Роли.Содержит(Роль) Тогда
					Пользователь.Роли.Удалить(Роль);
				КонецЕсли;	
								
		КонецЕСли;				  
	КонецЦикла;


Так вот, код везде идет. Удаляет, если после строчки "Пользователь.Роли.Удалить(Роль);" смотреть "Пользователь.Роли" - там роли которую я хочу удалить действительно нет. Но при повторном запуске обработки - она уже есть. Мне ещё необходимо как-то роли записать или что?
1 Shecurok
 
05.10.23
11:46
Конфигурация КА 1.1
2 Shecurok
 
05.10.23
11:56
Забыл самое очевидно:

Пользователь.Записать();
3 Волшебник
 
05.10.23
12:04
(2) 🤦
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс