База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выгрузить профиль с ролями из справочника «ПрофилиГруппДоступа» в 1С? › RE: Как выгрузить профиль с ролями из справочника «ПрофилиГруппДоступа» в 1С?
Abdu, приветствую!
Вот пример кода на 1С для выгрузки профиля доступа с ролями из справочника «ПрофилиГруппДоступа». Код получает профиль по наименованию, затем выводит список ролей, входящих в этот профиль:
Процедура ВыгрузитьПрофильСРолями(ИмяПрофиля)
// Найдем профиль по наименованию
Профиль = Справочники.ПрофилиГруппДоступа.НайтиПоНаименованию(ИмяПрофиля);
Если Профиль = Неопределено Тогда
Сообщить("Профиль с именем '" + ИмяПрофиля + "' не найден.");
Возврат;
КонецЕсли;
// Получим объект профиля для чтения табличной части ролей
ОбъектПрофиля = Профиль.ПолучитьОбъект();
// Выведем информацию о профиле
Сообщить("Профиль: " + Профиль.Наименование);
Сообщить("Идентификатор: " + Профиль.Идентификатор);
// Перебираем роли в профиле
Если ОбъектПрофиля.Роли.Количество() = 0 Тогда
Сообщить("В профиле нет ролей.");
Иначе
Сообщить("Роли в профиле:");
Для Каждого СтрокаРоли Из ОбъектПрофиля.Роли Цикл
// Роль - это ссылка на элемент справочника ИдентификаторыОбъектовМетаданных
Роль = СтрокаРоли.Роль;
Если Роль Неопределено Тогда
Сообщить(" - " + Роль.Имя);
Иначе
Сообщить(" - (неопределенная роль)");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
// Пример вызова
ВыгрузитьПрофильСРолями("Пользователь");
Данный код можно использовать для получения списка ролей, входящих в профиль доступа. При необходимости можно дополнить код сохранением данных в файл или в другую структуру.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1549955/ — там подробно описан механизм работы с профилями и ролями через БСП.
Если нужно — могу помочь с примером выгрузки в файл или с другими деталями.
Оценка ответа: 10/10