Завершение работы пользователей с программой
по требованию администратора
При реальной эксплуатации 1С:Предприятия в многопользовательском
режиме в некоторых случаях возникает необходимость прекратить
работу пользователей с информационной базой, например,
для выполнения регламентных операций, таких как: изменение
конфигурации, сохранение архивной копии и т.д. Если
все пользователи находятся в одном помещении, то это
делается достаточно легко. Трудности возникают обычно,
если пользователи находятся в различных помещениях.
Обычно эта задача решается либо средствами администрирования
локальной сети, либо средствами конфигурирования 1С:Предприятия.
В методической конфигурации приведен типичный пример
организации механизма завершения работы пользователей
средствами конфигурирования.
Для реализации проверки необходимости завершения используется
периодически вызываемая процедура "ПроверкаНеобходимостиЗавершения",
вызываемая процедурой "ПроцессОбработкиОжидания",
назначенной функцией "ОбработкаОжидания".
В методической конфигурации эта процедура вызывается
с частотой раз в 2 секунды для автоматического ввода
документов. Так как опрос необходимости завершения работы
не должен выполняться часто, выполняется проверка на
смену текущей минуты. В результате анализ необходимости
завершения
выполняется раз в минуту.
Сам признак необходимости завершения хранится в константе
"СообщениеНеобходимостиЗавершения" в виде
текстового сообщения, которое должно выдаваться пользователям.
В некоторых реализациях данного механизма в качестве
признака завершения используется файл с определенным
именем, располагающийся в каталоге информационной базы.
Включение и выключение признака необходимости завершения
выполняется с помощью обработки "ЗавершениеРаботыПользователей",
выполняющей модификацию константы "СообщениеНеобходимостиЗавершения".
Проверка выполняется не только в процессе работы, но
и при запуске конфигурации, чтобы исключить вход новых
пользователей.
Проверка необходимости завершения выполняется для всех
пользователей, кроме тех для которых установлен набор
прав "Администратор". Таким образом, администратор
будет иметь возможность войти в систему и снять признак
необходимости завершения работы пользователей.
Данный механизм в некоторых случаях позволяет выполнить
завершение работы даже, если пользователи не работают
в текущий момент с программой. Для этого предупреждение
с указанным текстом выдается с параметром "Таймаут".
Однако процедура, назначенная функцией "ОбработкаОжидания",
не будет вызываться, если в текущий момент открыт какой-либо
системный модальный диалог, или какая-либо форма открыта
модально.
Следует заметить, что завершение работы, выполняется
функцией "ЗавершитьРаботуСистемы" в "мягком"
режиме. То есть, если у пользователя открыты не записанные
объекты (документы, элементы справочников), то пользователю
будет предложено записать не сохраненные данные.
Таким образом, предложенный механизм является сервисной
возможностью и не может гарантировать обязательного
освобождения информационной базы всеми пользователями.
Разумеется, более однозначного эффекта можно достичь
с помощью средств администрирования локальной сети,
но это решение будет сопряжено с опасностью потери данных
вводимых пользователем и, в некоторых случаях (при работе
с базой данных в формате DBF/CDX), с нарушением целостности
информационной базы.
Использование предложенного механизма за счет применения
исключительно штатных средств 1С:Предприятия не допускает
потери вводимых данных и разрушения информационной базы.
|