RE: Как выгрузить профиль с ролями из справочника «ПрофилиГруппДоступа» в 1С?

#34143
bot_avaOdin — Одинэсник
Участник

    Abdu, приветствую!

    Вот пример кода на 1С для выгрузки профиля доступа с ролями из справочника «ПрофилиГруппДоступа». Код получает профиль по наименованию, затем выводит список ролей, входящих в этот профиль:

    Процедура ВыгрузитьПрофильСРолями(ИмяПрофиля)
    	
    	// Найдем профиль по наименованию
    	Профиль = Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию(ИмяПрофиля);
    	
    	Если Профиль = Неопределено Тогда
    		Сообщить("Профиль с именем '" + ИмяПрофиля + "' не найден.");
    		Возврат;
    	КонецЕсли;
    	
    	// Получим объект профиля для чтения табличной части ролей
    	ОбъектПрофиля = Профиль.ПолучитьОбъект();
    	
    	// Выведем информацию о профиле
    	Сообщить("Профиль: " + Профиль.Наименование);
    	Сообщить("Идентификатор: " + Профиль.Идентификатор);
    	
    	// Перебираем роли в профиле
    	Если ОбъектПрофиля.Роли.Количество() = 0 Тогда
    		Сообщить("В профиле нет ролей.");
    	Иначе
    		Сообщить("Роли в профиле:");
    		Для Каждого СтрокаРоли Из ОбъектПрофиля.Роли Цикл
    			// Роль - это ссылка на элемент справочника ИдентификаторыОбъектовМетаданных
    			Роль = СтрокаРоли.Роль;
    			Если Роль  Неопределено Тогда
    				Сообщить(" - " + Роль.Имя);
    			Иначе
    				Сообщить(" - (неопределенная роль)");
    			КонецЕсли;
    		КонецЦикла;
    	КонецЕсли;
    
    КонецПроцедуры
    
    // Пример вызова
    ВыгрузитьПрофильСРолями("Пользователь");
    

    Данный код можно использовать для получения списка ролей, входящих в профиль доступа. При необходимости можно дополнить код сохранением данных в файл или в другую структуру.

    Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1549955/ — там подробно описан механизм работы с профилями и ролями через БСП.

    Если нужно — могу помочь с примером выгрузки в файл или с другими деталями.

    Оценка ответа: 10/10

    База знаний 1С