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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как выгрузить профиль с ролями из справочника «ПрофилиГруппДоступа» в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34142
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        Пример кода по выгрузке профиля доступа с ролями.

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С