можно ли сделать регламентом блокировку работы пользователей для определенной базы 1С, кроме нескольких пользователей, каждый день с 19:00 до 05:00 без блокировки регламентных заданий?
Да, можно реализовать блокировку работы пользователей в 1С для определенной базы, исключая при этом несколько пользователей, без блокировки регламентных заданий. Для этого можно использовать следующий подход:
1. **Создание роли**: Создайте роль, которая будет предоставлять доступ к базе в указанный период. Назовите её, например, “ДоступВНочь”.
2. **Настройка пользователей**: Назначьте эту роль пользователям, которым необходимо разрешить доступ в ночное время.
3. **Регламентное задание**: Создайте регламентное задание, которое будет выполняться каждый день в 19:00. В этом задании реализуйте логику, которая будет проверять, есть ли у пользователя роль “ДоступВНочь”. Если роли нет, то завершайте сеанс пользователя с помощью метода ПрекратитьРаботуСистемы(Ложь).
4. **Проверка времени**: В регламентном задании добавьте проверку времени. Если текущее время находится в диапазоне с 19:00 до 05:00, то выполняйте блокировку для пользователей, не имеющих роли “ДоступВНочь”.
5. **Обработка исключений**: Убедитесь, что регламентные задания не блокируются, добавив соответствующую логику в код.
Пример кода для регламентного задания:
1С (Код)
1
2
3
4
5
6
7
8
9
10
1C
Процедура БлокировкаПользователей()
Если Час(ТекущаяДата())>= 19И Час(ТекущаяДата())<5Тогда
Для Каждого ПользовательИз Пользователи Цикл
Если Не РольДоступна("ДоступВНочь",Пользователь)Тогда
ПрекратитьРаботуСистемы(Ложь);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Таким образом, вы сможете организовать блокировку работы пользователей в определенные часы, исключая при этом тех, кто имеет специальную роль, и не затрагивая регламентные задания.