Иногда для проведения регламентных работ (обновление, выгрузка, тестирование) необходимо получить монопольный доступ к базе. Если база серверная, то сделать это достаточно просто, а если файловая, то возникают трудности. Типовая обработка блокировки работы пользователей не всегда срабатывает. Было принято решение встроить механизм непосредственно в базу.
В расширении добавлен единственный регистр сведений Расписание Завершения Работы, в котором надо указать пользователя и время когда произойдет завершения работы. При открытии регистра внизу будет список активных пользователей, при выборе пользователя добавится запись завершения с отсрочкой на 5 мин. время можно скорректировать вручную. При наступлении указанного времени сеанс закроется принудительно. Алгоритм прост - при запуске сеанса 1с подключается обработчик ожидания, который проверяет есть ли запись в регистре для данного пользователя, шаг обработчика 60 секунд. Что бы не происходило бесконечного завершения работы, то при запуске сеанса все старые записи для данного пользователя просто стираются.
Работать будет на любой конфигурации, где есть справочник Пользователи и функция Пользователи.ТекущийПользователь() (т.е. на всех типовых точно).
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.171.23