1С 8.3 Пользователи, роли (права) доступа - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Пользователи, роли (права) доступа

Данные > Примеры кода 1С > 1С 8.3 Пользователи, роли (права) доступа
Пользователи в 1С 8.3 – это учётные записи сотрудников предприятия, которые используются для аутентификации в конкретной информационной базе с помощью пароля (может быть пустым). Администратор системы, с помощью учетных записей пользователей разграничивает роли (права доступа) к определённым объектам конфигурации в соответствии с их должностными обязанностями и политикой организации.

При вводе нового пользователя через Конфигуратор 1С, заполняются следующие признаки и поля:
  • Имя и Полное имя  - соответственно наименование и полное наименование пользователя информационной базы. При активации признака Аутентификация 1С: Предприятия, становятся доступен  для входа в 1С. Пользователю запрещено изменять пароль (делает доступным возможность смены пароля пользователем в пользовательском режиме), Показывать в списке выбора (делает доступным выбор пользователя в списке, в противном случае имя пользователя необходимо вводить вручную).
  • Аутентификация операционной системы - этот признак включает возможность авторизации с помощью имени пользователя операционной системы. Где «Пользователь» - это имя пользователя информационной системы (например, \\domain\artur.k, где domain - домен сети, а artur.k –это имя пользователя ОС). При старте сеанса 1С  сначала проверяет авторизацию через ОС, а уже потом авторизацию 1С.
  • Аутентификация OpenID - это включение возможности авторизации с помощью технологии OpenID (система, позволяющая пользователю использовать единую учётную запись для аутентификации на множестве не связанных друг с другом программ, сайтов, соц.сетей).
Создать, удалить пользователя, вывести список пользователей в 1С 8.3:
Процедура СоздатьПользователя()

   ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
   ПользовательИБ.Имя = "Лев Толстой";
   ПользовательИБ.Пароль = "Wp1865";
   ПользовательИБ.ПоказыватьВСпискеВыбора = Истина;
   ПользовательИБ.Роли.Добавить(Метаданные.Роли.АдминистраторСистемы);
   ПользовательИБ.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Основной;
   ПользовательИБ.Записать();

КонецПроцедуры


Процедура УдалитьПользователя()

   ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени("Лев Толстой");
   ПользовательИБ.Удалить();

   //ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
   //ПользовательИБ.Удалить();

КонецПроцедуры


Процедура ВывестиСписокПользователей()

   СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
   Для Каждого ПользовательИБ Из СписокПользователей Цикл
       Сообщить(ПользовательИБ);
   КонецЦикла;
  // см. получение юзеров из справочника: https://1cnik.by/poluchit_spisok_dejstvujuschih_polzovatelej.php

КонецПроцедуры
Блокировка работы пользователя в 1С 8.3:
&НаКлиенте
Процедура БлокировкаРаботыПользователя(Команда)

   
ЗаблокироватьРаботуПользователя();

КонецПроцедуры
Получение имени текущего пользователя в 1С 8.3:
&НаКлиенте
Процедура ПолучениеИмениТекущегоПользователя(Команда)

   
Полученное_Имя=ИмяПользователя(); // Морозов А.И.
   
Полученное_Имя_Полное=ПолноеИмяПользователя(); // Морозов Александр Иванович

КонецПроцедуры
Чтение и проверка прав и ролей пользователей в 1С 8.3:
&НаСервере
Процедура ЧтениеИПроверкаПравИРолейПользователей() // Варианты прав: Чтение, Изменение, Добавление, Удаление, Проведение

    // Чтение права к объекту метаданных у текущего пользователя
   
Если ПравоДоступа("Изменение", Метаданные.Справочники.Материалы) Тогда
       
Сообщить("Доступ к справочнику Материалы на изменение открыт!");
    КонецЕсли;

   
// Чтение права к объекту метаданных у определенной роли
   
Если Не ПравоДоступа("Удаление", Метаданные.Справочники.Материалы, Метаданные.Роли.Менеджер) Тогда
       
Сообщить("У роли Менеджер нет прав на удаление в справочнике Материалы!");
    КонецЕсли;

   
// Проверка права к объекту метаданных у других пользователей
   
ВсеПользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();
    Для Каждого
Пользователь Из ВсеПользователи Цикл
        Если
ПравоДоступа("Изменение", Метаданные.Справочники.Материалы, Пользователь) Тогда
           
Сообщить("Доступ для " + Пользователь.Имя + " на изменение открыт!");
        КонецЕсли;
    КонецЦикла;

   
// Чтение роли у текущего пользователя
   
Если РольДоступна("Администратор") Тогда
       
Сообщить("У Вас права Администратора!");
    КонецЕсли;

   
// Проверка права у пользователя и в случае его отсутствия - вызов исключения
   
ВыполнитьПроверкуПравДоступа("Изменение", Метаданные.Справочники.Материалы); // "Нарушение прав доступа!"

КонецПроцедуры
Сохранение, чтение и удаление настроек пользователя в 1С 8.3:
&НаСервере
Процедура СохранениеЧтениеУдалениеНастроекПользователя()

   
// Сохранение произвольных настроек конкретного пользователя
   
НастройкиПользователя = Новый Структура;
   
НастройкиПользователя.Вставить("Фамилия", "Дарк");
   
НастройкиПользователя.Вставить("Имя", "Жанна");
   
НастройкиПользователя.Вставить("Пол", "Ж");
   
НастройкиПользователя.Вставить("Возраст", 19);

   
// Параметры: Ключ объекта, Ключ настроек, Настройки, Описание настроек, Владелец настроек,
   
ХранилищеОбщихНастроек.Сохранить("Отчет.ОСВ", "КлючНастроек", НастройкиПользователя, ,ИмяПользователя());

   
// Сохранение произвольных настроек для всех пользователей
   
ВсеПользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();
    Для Каждого
Пользователь Из ВсеПользователи Цикл
       
ХранилищеОбщихНастроек.Сохранить("Отчет.ОСВ", "КлючНастроек", НастройкиПользователя, ,Пользователь.Имя);
    КонецЦикла;

   
// Чтение сохраненных настроек пользователя
   
ЧтениеНастроек = Неопределено;
    Попытка
       
ЧтениеНастроек = ХранилищеОбщихНастроек.Загрузить("Отчет.ОСВ", "КлючНастроек",,ИмяПользователя());
    Исключение
       
Сообщить("Не достаточно прав доступа к настройкам пользователя: "+ИмяПользователя());
    КонецПопытки;

    Если
ЧтениеНастроек = Неопределено Тогда // Значит настроек нет
       
Сообщить("Не получилось прочитать настройки.");
    Иначе
// Чтение настроек
       
Сообщить("Имя:"+ЧтениеНастроек.Имя+"; Фамилия:"+ЧтениеНастроек.Фамилия+
       
"; Пол:"+ЧтениеНастроек.Пол+"; Возраст:"+ЧтениеНастроек.Возраст);
    КонецЕсли;

   
// Удаление сохраненных настроек пользователя
   
ХранилищеОбщихНастроек.Удалить("Отчет.ОСВ", "КлючНастроек", ИмяПользователя());

   
// Удаление сохраненных настроек у всех пользователей
   
ХранилищеОбщихНастроек.Удалить("Отчет.ОСВ", "КлючНастроек", Неопределено);

КонецПроцедуры
📰 Актуальные новости с тегом #Пользователи, роли (права) доступа:
  • В версии 8.3.28 появился механизм блокировки входа пользователей информационной базы: настройка для пользователя "Аутентификация разрешена" и настройка периода разрешенной аутентификации.
  • В версии 8.3.28 внесены улучшения в механизм двухфакторной аутентификации: настраиваемая длина кода подтверждения, устаревание кода, запрос нового кода и защита от подбора кода и массовой рассылки sms, пользовательское сообщение в окне второго фактора ("Код подтверждения был отправлен на ваш номер &MaskedPhone. Введите его в окно ниже").
  • В версии 8.3.27 появилась возможность подключения заданных клиентов к выбранным серверам кластера. Есть бизнес-сценарии, в которых предпочтительно вынести работу отдельных пользователей на определенные рабочие серверы. Например, пользователям, запускающим расчет себестоимости, целесообразнее работать на выделенных серверах, чтобы не мешать работе обычных пользователей.
  • В версии 8.3.27 появилась возможность аутентификации через электронную почту.
  • В версии 8.3.26 появилась возможность завершения сеансов после установленного администратором времени неактивности клиента.
  • В версии 8.3.26 добавлена возможность настройки нужного типа аутентификации по умолчанию. Реализована возможность сохранения пароля пользователя. На форме аутентификации будут отображаться все доступные для информационной базы или публикации способы аутентификации.
  • В версии 8.3.26 реализован механизм проверки пароля по списку скомпрометированных паролей, а также через API, например: https://api.pwnedpasswords.com/range.
  • В версии 8.3.26 реализована возможность получения даты последней активности пользователя
  • В версии 8.3.26 реализована возможность задавать алгоритм хэширования паролей
  • В версии 8.3.26 разработано журналирование изменения ролей, прав доступа пользователей и административных действий для целей аудита
  • В версии 8.3.26 реализованы доп. варианты беспарольной аутентификации (qr-код)
  • В версии 8.3.26 реализовано получение даты последней активности пользователя
  • В версии 8.3.22 реализована автоматическая генерация паролей пользователей
  • В версии 8.3.22 реализовано сохранение пользовательских настроек отчета при сохранении варианта.
  • В версии 8.3.22 реализовано улучшение аутентификации с использованием OpenID Connect.
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 25.05.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому