Завершение сеансов пользователей, как работает, чем осуществляется. Автоматическое выключение компьютера Завершение работы 1с

При написании программ нередко возникает необходимость выполнить какие-либо действия при запуске или завершении работы программы. С «обычными» программами в этом случае всё просто. Необходимо обработать соответствующие события или поместить необходимый код перед загрузкой главного окна или отображением консольного «интерфейса».

Но, что делать в случае с 1С? Если в 1С Предприятие подобный функционал?

В 1С есть возможность выполнения кода при запуске и остановке приложения. Она реализована в виде специальных событий обработка которых доступна в модуле управляемого приложения.

  • ПередНачаломРаботыСистемы
    1С Предприятие запускается, но рабочее окно конфигурации, ещё не появилось на экране;
  • ПриНачалеРаботыСистемы
    Приложение уже запущено;
  • ПередЗавершениемРаботыСистемы
    Событие возникает перед началом процесса завершения работы приложения. Рабочее окно ещё отображается на экране;
  • ПриЗавершенииРаботыСистемы
    Рабочее окно уже закрылось и выполняются заключительные действия перед полным завершением работы.

Если в режиме конфигуратора щёлкнуть правой кнопкой мыши на корне конфигурации и выбрать в открывшемся меню пункт «Открыть модуль управляемого приложения», откроется стандартное окно для редактирования кода, в котором содержится код вышеназванного модуля.

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

1С (Код)

Процедура ПередНачаломРаботыСистемы(Отказ) // Делаем что-то КонецПроцедуры Процедура ПриНачалеРаботыСистемы() // Делаем что-то КонецПроцедуры Процедура ПередЗавершениемРаботыСистемы(Отказ) // Делаем что-то КонецПроцедуры Процедура ПриЗавершенииРаботыСистемы() // Делаем что-то КонецПроцедуры

Обратите внимание!

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

Процедура ПередЗавершениемРаботыСистемы принимает единственный параметр – «Отказ» (булево, значение по умолчанию «ложь»). Этот параметр определяет отмену завершения работы конфигурации. То есть, если перед завершением работы выполняются некоторые проверки и их результаты неудовлетворительны, можно отменить завершение работы просто присвоив параметру «Отказ» значение «истина».

Параметр «Отказ» в процедуре ПередНачаломРаботыСистемы, имеет аналогичное назначение. Если ему присвоить значение «истина», приложение просто не запустится.

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

Ограничения

  • Весь код размещённый в модуле управляемого приложения работает только на стороне клиента. Поэтому, если при обработке вышеперечисленных событий необходимо обратиться к серверу, то для этих целей следует создать отдельный общий модуль и установить в его настройках работу на стороне сервера и доступность для вызова сервера на стороне клиента (то есть в свойствах установить флажки «Сервер» и «Вызов сервера»).
  • Также не рекомендуется при запуске и завершении приложения выполнять громоздкие операции. И дело здесь не только в увеличении времени обработки событий вследствие больших объёмов данных или сложности алгоритмов. Модуль управляемого приложения компилируется при запуске программы. Поэтому, чем больше он загружен функционалом, тем дольше приложение будет запускаться.
    Подобные операции лучше выполнять по запросу во время работы или в регламентных заданиях.

При резервном копировании информационных баз работа пользователей с информационной базой должна быть прекращена.

«Завершить работу пользователей 1С:Предприятия»
Установите флаг, если необходимо произвести завершение работы пользователей с базой перед выполнением архивирования.

Возможные варианты завершения работы пользователей:

  • «Завершить сеансы на сервере 1С:Предприятие»

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

Важно: не путайте данного пользователя с пользователем базы 1С:Предприятия и пользователем «администратор центрального сервера».

В консоли сервера 1С:Предприятия администраторы кластера находятся по следующему пути: «Console Root» - «1C:Enterprise 8.3 Central Servers» - «(*)имя компьютера» - «Кластеры» - «Локальный кластер» - «Администраторы» .

«Имя администратора кластера:»
Имя пользователя «администратор кластера».

«Пароль администратора кластера:»
Пароль пользователя «администратор кластера».

«Используется нестандартный порт агента сервера»
Установите данный флаг если порт подключения к «Агенту» сервера отличный от стандартного.

«Порт:»
Порт подключения к агенту сервера 1С:Предприятия. По умолчанию 1540.

Для определения порта агента сервера зайдите в Сервер 1С при клике правой кнопкой мыши на имя компьютера из выпадающего меню выберете «Свойства» - «Параметры центрального сервера 1С:Предприятия» - «IP порт:» .

  • «Вызвать штатное завершение работы пользователей»

Вариант отключения пользователей путем вызова встроенного в типовые конфигурации механизма завершения работы пользователей. Данный механизм основан на использовании процедуры «Блокировка установки соединений с информационной базой».

Алгоритм выполнения следующий:

  • Запуск завершения работы пользователей.
  • Запуск выполнения задачи (архивирование, тестирование и исправление и т.д.).
  • Запуск разрешения работы пользователей.

«Момент:»
Момент завершения работы пользователей.

  • «Завершить работу перед выполнением задачи» . Перед каждым выполнением задачи будет запущена процедура завершения работы пользователей.
  • «Завершить работу только если требуется обновить конфигурацию» . Если задача настроена на выполнение обмена для периферийной базы и из центрального узла получена измененная конфигурация, запустится процедура завершения работы пользователей. В остальных случаях механизм завершения работать не будет.

Необходимость в принудительном завершении работы пользователя в основном возникает в следующих случаях:

  • Обновление информационной базы;
  • Добавление нового объекта метаданных в конфигурацию;
  • Проведение профилактических и ремонтных работ на сервере;
  • Зависший сеанс пользователя, препятствующий повторному запуску приложения.

В этой статье мы постараемся рассказать, как завершить сеанс пользователя, какие инструменты для выполнения этой задачи есть в арсенале администратора, какие варианты завершения предусматривает файловый, а какие клиент-серверный вариант работы 1С.

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

Закрытие сеансов из конфигуратора

Когда в структуру базы данных вносятся изменения, обновление конфигурации в динамическом режиме становится недоступно. И на экране появляется информационное окно (Рис.1).

Последовательность действий в этом случае очевидна:

  1. Необходимо нажать кнопку «Завершить сеансы и повторить»;
  2. Дождаться окна рестуктуризации базы;
  3. Нажать «ОК».

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

Завершение сеансов непосредственно из программы

Большинство стандартных продуктов фирмы 1С восьмой версии имеют в своем наборе механизм, позволяющий без особого труда удаленно завершить работу пользователя, и обеспечить администратору монопольный доступ к базе. Это обработка «Блокировка соединений с информационной базой».

Найти ее можно по одному из двух адресов:

  1. В одном из подменю раздела «Сервис»;
  2. Зайдя в раздел Операции->Обработки.

Рис.2

Внешний вид обработки представлен на Рис.2.

Особенности данной обработки:

  1. Установка и снятие флажка, и нажатие кнопки «Записать» включает и выключает блокировку пользователей, удаляя сеансы и препятствуя созданию новых подключений;
  2. Время окончания блокировки не может быть пустым или меньше времени её начала;
  3. В случае, когда задан параметр «Код разрешения», его можно прописать в строку запуска, для игнорирования блокировки, перед кодом указав «/UC»;
  4. Если «Код разрешения» не указать, то до истечения срока блокировки попасть в базу будет проблематично (в файловом варианте работы можно попробовать из папки базы удалить файл 1CVcdn);
  5. Если вместо параметра «/UС» и пароля через пробел указать «/CРазрешитьРаботуПользователей», где С – латинская, можно полностью отключить блокировку для всех пользователей;
  6. Нажатие кнопки «Активные пользователи, вызывает окно с полным списком пользователей (рис.3), откуда можно открыть «Журнал регистрации» или завершить сеанс каждого конкретного пользователя.

Рис.3

Два вышеизложенных варианта прекрасно работают как в файловом, так и в клиент-серверном режиме. Дальше мы будем рассматривать случаи характерные только для серверной работы.

Удаление пользователей из rdp

Важно помнить, что отключение сеансов пользователей с серверов возможно только при наличии определенных прав на это действие.

При работе с удаленного рабочего стола, завершить сеансы пользователей можно воспользовавшись стандартным диспетчером задач. Простое прерывание сеансов — немного неправильный, но достаточно действенный способ.

Второй вариант использование диспетчера задач – удаленное подключение с возможностью управления к каждому конкретному сеансу и осуществление выхода из программы по всем правилам. Этот способ долгий, и никто не гарантирует, что пока выполняется выход одного пользователя, не будет осуществлен запуск программы каким-либо другим работником.

Удаление пользователей через консоль сервера

Обладая правами Администратора для кластера серверов 1С, необходимо:


Очень часто при работе в серверном режиме зависшие сеансы пользователей не видны средствами платформы, их возможно удалить только через консоль.

Самый радикальный способ прерывания сеансов

Ситуация, когда вышеописанные способы не сработали, случается крайне редко. Но в случае ее возникновения есть еще один радикальный способ прервать соединения с базой: физическая перезагрузка сервера.

Безусловно, пользователи, не успевшие закончить работу и сохранить данные, будут крайне возмущены таким беспардонным отношением, однако это быстро и это крайне эффективно.

Здравствуйте.
Из темы уже понятно, что речь пойдет об автоматическом выключении компьютера . Тема очень актуальная как для дома, так и для офиса.

На работе часто бывает, когда работник покидает свое рабочее место, забыв выключить компьютер, а бывает что необходимо идти домой, но на компьютере выполняются какие-то задачи и компьютер выключить нельзя.

После указания всех настроек нажимаем «Применить» или «Ок».

Для использования всех возможностей Shutdown утилиты необходимо задействовать параметры командной строки.
Чтобы посмотреть параметры для утилиты Shutdown, заходим в командную строку (ПУСК- Все программы- Стандартные- Командная строка) и введем команду

Shutdown /? отображает справочную информацию по программе

Вот одна из комбинации выключения компьютера
C:\WINDOWS\system32\shutdown.exe -s -f -t 60
Где
-s выключить локальный ПК
-f разрешить принудительное закрытие всех работающих приложений
-t xx задает временную задержку до вызова процедуры выключения компьютера в секундах — xx. По умолчанию 20 сек.

Также некоторые выключают планировщик, если его не используют, что сокращает время загрузки Windows.
Чтобы отключить планировщик, необходимо в реестре перейти в раздел HKLM/SYSTEM/ CurrentControlSet/Services/Schedule, для параметра REG_DWORD Start и установить значение 0. Чтобы вернуть все, как было, нужно установить значение 2.

Пожалуйста, оставляйте своё мнение в комментариях.

P.S. Чтоб расслабится Шутка Сталина

Реализовано в версии 8.3.8.1652.

Раньше пользователи, привыкшие к работе с веб-приложениями, испытывали определённое неудобство от того, что не видели команды завершения работы пользователя. Они привыкли к тому, что обычно такая команда есть, и она находится на видном месте. И чтобы завершить работу веб-приложения нужно не просто закрыть окно браузера, а именно выполнить эту команду. Которая, в том числе, завершит и сеанс авторизации. Чтобы при следующем запуске приложения нельзя было войти в него «просто так», а только после ввода логина и пароля.

В 1С:Предприятии и команда Выход , и команда Завершить работу пользователя … (при использовании OpenID-аутентификации) существуют, но располагаются в меню Файл , о чём многие пользователи не знают.

Чтобы сделать работу пользователей более привычной, мы добавили команду завершения работы в заголовок приложения, рядом с кнопкой О программе . Она отображается в виде гиперссылки с именем текущего пользователя.



Эта команда, при обычной аутентификации, завершает работу клиентского приложения. А при OpenID-аутентификации она завершает работу пользователя (OpenID logout) и также завершает работу приложения.

При публикации информационной базы на веб-сервере можно задать URL, по которому будет выполнен переход после завершения работы веб-клиента этой командой. Например, для возврата на основную страницу поставщика сервиса, если пользователь работал с приложением в модели сервиса.

 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!