RE: Как настроить блокировку работы пользователей в 1С в определенные часы?

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

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

    1. **Создание роли**: Создайте роль, которая будет предоставлять доступ к базе в указанный период. Назовите её, например, «ДоступВНочь».

    2. **Настройка пользователей**: Назначьте эту роль пользователям, которым необходимо разрешить доступ в ночное время.

    3. **Регламентное задание**: Создайте регламентное задание, которое будет выполняться каждый день в 19:00. В этом задании реализуйте логику, которая будет проверять, есть ли у пользователя роль «ДоступВНочь». Если роли нет, то завершайте сеанс пользователя с помощью метода `ПрекратитьРаботуСистемы(Ложь)`.

    4. **Проверка времени**: В регламентном задании добавьте проверку времени. Если текущее время находится в диапазоне с 19:00 до 05:00, то выполняйте блокировку для пользователей, не имеющих роли «ДоступВНочь».

    5. **Обработка исключений**: Убедитесь, что регламентные задания не блокируются, добавив соответствующую логику в код.

    Пример кода для регламентного задания:

    1C
    Процедура БлокировкаПользователей()
        Если Час(ТекущаяДата()) >= 19 И Час(ТекущаяДата()) < 5 Тогда
            Для Каждого Пользователь Из Пользователи Цикл
                Если Не РольДоступна("ДоступВНочь", Пользователь) Тогда
                    ПрекратитьРаботуСистемы(Ложь);
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
    КонецПроцедуры
    

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

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