Необходимость в принудительном завершении работы пользователя в основном возникает в следующих случаях:
- Обновление информационной базы;
- Добавление нового объекта метаданных в конфигурацию;
- Проведение профилактических и ремонтных работ на сервере;
- Зависший сеанс пользователя, препятствующий повторному запуску приложения.
В этой статье мы постараемся рассказать, как завершить сеанс пользователя, какие инструменты для выполнения этой задачи есть в арсенале администратора, какие варианты завершения предусматривает файловый, а какие клиент-серверный вариант работы 1С.
Важно помнить, что при принудительном завершении сеанса возможна потеря данных. Так что для исключения неприятных ситуаций желательно заранее предупредить пользователей об отключении.
Содержание
- Закрытие сеансов из конфигуратора
- Завершение сеансов непосредственно из программы
- Удаление пользователей из rdp
- Удаление пользователей через консоль сервера
- Самый радикальный способ прерывания сеансов
- Закрытие сеансов из конфигуратора
- Завершение сеансов непосредственно из программы
- Удаление пользователей из rdp
- Удаление пользователей через консоль сервера
- Самый радикальный способ прерывания сеансов
- Инструкция
Закрытие сеансов из конфигуратора
Когда в структуру базы данных вносятся изменения, обновление конфигурации в динамическом режиме становится недоступно. И на экране появляется информационное окно (Рис.1).
Последовательность действий в этом случае очевидна:
- Необходимо нажать кнопку «Завершить сеансы и повторить»;
- Дождаться окна рестуктуризации базы;
- Нажать «ОК».
Следует отметить, что изменения, вносимые в код программы, не требуют завершения работы пользователей, однако без перезапуска приложения на каждом конкретном компьютере они на этом устройстве срабатывать не будут.
Завершение сеансов непосредственно из программы
Большинство стандартных продуктов фирмы 1С восьмой версии имеют в своем наборе механизм, позволяющий без особого труда удаленно завершить работу пользователя, и обеспечить администратору монопольный доступ к базе. Это обработка «Блокировка соединений с информационной базой».
Найти ее можно по одному из двух адресов:
- В одном из подменю раздела «Сервис»;
- Зайдя в раздел Операции->Обработки.
Внешний вид обработки представлен на Рис.2.
Особенности данной обработки:
- Установка и снятие флажка, и нажатие кнопки «Записать» включает и выключает блокировку пользователей, удаляя сеансы и препятствуя созданию новых подключений;
- Время окончания блокировки не может быть пустым или меньше времени её начала;
- В случае, когда задан параметр «Код разрешения», его можно прописать в строку запуска, для игнорирования блокировки, перед кодом указав «/UC»;
- Если «Код разрешения» не указать, то до истечения срока блокировки попасть в базу будет проблематично (в файловом варианте работы можно попробовать из папки базы удалить файл 1CVcdn);
- Если вместо параметра «/UС» и пароля через пробел указать «/CРазрешитьРаботуПользователей», где С – латинская, можно полностью отключить блокировку для всех пользователей;
- Нажатие кнопки «Активные пользователи, вызывает окно с полным списком пользователей (рис.3), откуда можно открыть «Журнал регистрации» или завершить сеанс каждого конкретного пользователя.
Два вышеизложенных варианта прекрасно работают как в файловом, так и в клиент-серверном режиме. Дальше мы будем рассматривать случаи характерные только для серверной работы.
Удаление пользователей из rdp
Важно помнить, что отключение сеансов пользователей с серверов возможно только при наличии определенных прав на это действие.
При работе с удаленного рабочего стола, завершить сеансы пользователей можно воспользовавшись стандартным диспетчером задач. Простое прерывание сеансов — немного неправильный, но достаточно действенный способ.
Второй вариант использование диспетчера задач – удаленное подключение с возможностью управления к каждому конкретному сеансу и осуществление выхода из программы по всем правилам. Этот способ долгий, и никто не гарантирует, что пока выполняется выход одного пользователя, не будет осуществлен запуск программы каким-либо другим работником.
Удаление пользователей через консоль сервера
Обладая правами Администратора для кластера серверов 1С, необходимо:
- Запустить консоль администрирования сервера 1С (Рис. 4) ; Рис.4
- В ветке «Информационные базы», найти базу, в которой будут удаляться пользователи;
- Открыв ее, зайти в ветку «Сеансы» ;
- Щелкнув правой кнопкой мыши по имени пользователя, выбрать пункт «Удалить».
Очень часто при работе в серверном режиме зависшие сеансы пользователей не видны средствами платформы, их возможно удалить только через консоль.
Самый радикальный способ прерывания сеансов
Ситуация, когда вышеописанные способы не сработали, случается крайне редко. Но в случае ее возникновения есть еще один радикальный способ прервать соединения с базой: физическая перезагрузка сервера.
Безусловно, пользователи, не успевшие закончить работу и сохранить данные, будут крайне возмущены таким беспардонным отношением, однако это быстро и это крайне эффективно.
Необходимость в принудительном завершении работы пользователя в основном возникает в следующих случаях:
- Обновление информационной базы;
- Добавление нового объекта метаданных в конфигурацию;
- Проведение профилактических и ремонтных работ на сервере;
- Зависший сеанс пользователя, препятствующий повторному запуску приложения.
В этой статье мы постараемся рассказать, как завершить сеанс пользователя, какие инструменты для выполнения этой задачи есть в арсенале администратора, какие варианты завершения предусматривает файловый, а какие клиент-серверный вариант работы 1С.
Важно помнить, что при принудительном завершении сеанса возможна потеря данных. Так что для исключения неприятных ситуаций желательно заранее предупредить пользователей об отключении.
Закрытие сеансов из конфигуратора
Когда в структуру базы данных вносятся изменения, обновление конфигурации в динамическом режиме становится недоступно. И на экране появляется информационное окно (Рис.1).
Последовательность действий в этом случае очевидна:
- Необходимо нажать кнопку «Завершить сеансы и повторить»;
- Дождаться окна рестуктуризации базы;
- Нажать «ОК».
Следует отметить, что изменения, вносимые в код программы, не требуют завершения работы пользователей, однако без перезапуска приложения на каждом конкретном компьютере они на этом устройстве срабатывать не будут.
Завершение сеансов непосредственно из программы
Большинство стандартных продуктов фирмы 1С восьмой версии имеют в своем наборе механизм, позволяющий без особого труда удаленно завершить работу пользователя, и обеспечить администратору монопольный доступ к базе. Это обработка «Блокировка соединений с информационной базой».
Найти ее можно по одному из двух адресов:
- В одном из подменю раздела «Сервис»;
- Зайдя в раздел Операции->Обработки.
Рис.2
Внешний вид обработки представлен на Рис.2.
Особенности данной обработки:
- Установка и снятие флажка, и нажатие кнопки «Записать» включает и выключает блокировку пользователей, удаляя сеансы и препятствуя созданию новых подключений;
- Время окончания блокировки не может быть пустым или меньше времени её начала;
- В случае, когда задан параметр «Код разрешения», его можно прописать в строку запуска, для игнорирования блокировки, перед кодом указав «/UC»;
- Если «Код разрешения» не указать, то до истечения срока блокировки попасть в базу будет проблематично (в файловом варианте работы можно попробовать из папки базы удалить файл 1CVcdn);
- Если вместо параметра «/UС» и пароля через пробел указать «/CРазрешитьРаботуПользователей», где С – латинская, можно полностью отключить блокировку для всех пользователей;
- Нажатие кнопки «Активные пользователи, вызывает окно с полным списком пользователей (рис.3), откуда можно открыть «Журнал регистрации» или завершить сеанс каждого конкретного пользователя.
Рис.3
Два вышеизложенных варианта прекрасно работают как в файловом, так и в клиент-серверном режиме. Дальше мы будем рассматривать случаи характерные только для серверной работы.
Удаление пользователей из rdp
Важно помнить, что отключение сеансов пользователей с серверов возможно только при наличии определенных прав на это действие.
При работе с удаленного рабочего стола, завершить сеансы пользователей можно воспользовавшись стандартным диспетчером задач. Простое прерывание сеансов — немного неправильный, но достаточно действенный способ.
Второй вариант использование диспетчера задач – удаленное подключение с возможностью управления к каждому конкретному сеансу и осуществление выхода из программы по всем правилам. Этот способ долгий, и никто не гарантирует, что пока выполняется выход одного пользователя, не будет осуществлен запуск программы каким-либо другим работником.
Удаление пользователей через консоль сервера
Обладая правами Администратора для кластера серверов 1С, необходимо:
Очень часто при работе в серверном режиме зависшие сеансы пользователей не видны средствами платформы, их возможно удалить только через консоль.
Самый радикальный способ прерывания сеансов
Ситуация, когда вышеописанные способы не сработали, случается крайне редко. Но в случае ее возникновения есть еще один радикальный способ прервать соединения с базой: физическая перезагрузка сервера.
Безусловно, пользователи, не успевшие закончить работу и сохранить данные, будут крайне возмущены таким беспардонным отношением, однако это быстро и это крайне эффективно.
1. Отключение пользователей в файловой версии 1С 8.
Для отключение пользователей в файловой версии Я создал *.bat файл с одной строчкой
net session /delete /y
Он отключает все открытые общие файлы на компьютере на котором лежит база.
Далее создал задание (Планировщик заданий Windows), который бы запускал этот файл в назначенное время.
Вы спросите а как же те сеансы которые открыты на компьютере, Я их тоже устранил создав новый *.bat файл со строкой
taskkill /IM 1cv8.exe /f
правда он отключает все запущенные 1С на текущим компьютере, но для меня это не было так страшно так как архивация производилась в ночное время и уже никто не работал в базе, этот батник тоже можно добавить в Планировщик Windows.
2. Отключение пользователей в клиент-серверной базе.
Так же как и в случае файловой базы Я использовал *.bat файлы.
Создал два *.bat файла, первый отключает сервер 1С предприятие, второй его включает очень просто.
net stop "1C:Enterprise 8.2 Server Agent"
net start "1C:Enterprise 8.2 Server Agent"
Добавил два новых задания в планировщик Windows , с разницой во времени 15 минут для того чтобы все зависшие пользователи смогли отключиться, эти действия анологичны Запуск сервера 1С Предприятие и Остановка сервера 1С Предприятие
3. Программный способ отключения пользователей в 1С
Стояла задача выполнять архивацию ежеденевно в 22:30.
В этом способе Я не стал заморачиваться, создал новую роль "НеЗакрывать1С".
Создал новую процедуру в модуле обычного приложения:
Процедура ЗавершениеРаботыПользователей() Экспорт Если НЕ РольДоступна("НеЗакрывать1С") Тогда Если Час(моп_ВыполнениеОперацийНаСервере.ТекущаяДатаНаСервере()) >= 22 Тогда // получаю врмемя на сервере ПрекратитьРаботуСистемы(Ложь); КонецЕсли; КонецЕсли; КонецПроцедуры
Если НЕ РольДоступна("НеЗакрывать1С") Тогда Если Час(моп_ВыполнениеОперацийНаСервере.ТекущаяДатаНаСервере()) >= 22 Тогда // получаю врмемя на сервере ПрекратитьРаботуСистемы(Ложь); КонецЕсли; КонецЕсли;
Функция текущая дата на сервере выглядит так:
Функция ТекущаяДатаНаСервере() Экспорт
Возврат ТекущаяДата();
КонецФункции
Таким образом мы получаем дату на сервере, в случае если в свойствах общего модуля установлена галочка "Сервер", я поставил только её.
Получается текущий код отрубает пользователей на два часа, но обычно после полночи уже никто не заходит в базу.
Если кому-то помогла эта статья буду очень рад.
В 1С, к сожалению, нет инструмента для оповещения активных пользователей программы. Зачастую администратору или бухгалтеру среди рабочего дня нужен монопольный режим для выполнения регламентных операций: обновления программы, изменения конфигурации, удаление объектов, группового перепроведения и др. В таком случае специалисту которому нужно провести регламентные операции сталкивается с проблемой «как закрыть активных пользователей», если я штатными средствами не могу ни предупредить ни принудительно выбросить? Принудительно прервать сеансы пользователей можно. Ниже описаны способы.
1. Файловая база данных . Меню Сервис – Пользователи – Блокировка установки соединений с информационной базой. Если по этому пути вы не обнаружили обработку закрытия активных пользователей, посмотрите в меню Операции – Обработки — Блокировка установки соединений с информационной базой. Там она точно будет. Данная обработка появилась в платформе 1С 8.2.14. В более ранних версиях ее может не быть. Это единственный для файловой базы данных способ получить монопольный доступ. Детально рассматривать как работать с обработкой не будем. В общем то она простая и понятная.
Существует еще один альтернативный вариант выбросить пользователей с файловой БД. Специальная программная обработка может: 1. Просто выводить информационное окно о необходимости закрыть программу или другое сообщение 2. Выводить сообщение и завершать сеансы пользователей. 3. Переводить 1С в монопольный режим. 4. Запрещать пользователям вход, когда включен монопольный режим. Данная обработка не штатная. Стоимость и функционал смотрите в наших проектах . Выглядит обработка так:
Информационное окно для пользователей
2. Серверная база данных . Для серверной базы данных возможностей чуть больше. Доступен первый способ, а также можно удалять активных пользователей с консоли сервера 1С . Для этого необходимо в ветке найти информационную базу, ветку «Сеансы» и удалить активные сеансы пользователей. Данный способ не совсем гуманный с точки зрения внезапного прекращения работы пользователя без предупреждения, но зато очень эффекивный и быстрый. Минус в том что после удаления сеансов пользователи могут снова пытаться входить в программу. Поэтому рекомендуется незамедлительно после удаления активных сеансов из консоли приступить к выполнению намеченных заданий.
Есть и третий вариант быстро и эффективно выбросить всех пользователей с 1С — перезагрузить ПК или сервер, на котором находится база данных 1С. Этот способ несколько грубоват, потому что не позволяет предупредить пользователей, не дает им время корректно завершить работу и т.д., но весьма эффективный, когда монопольный доступ нужен очень срочно или когда предыдущих два способа кажутся вам "темным лесом".
Сотрудники организации несут ответственность за свои действия и последствия этих действий при работе с базой данных предприятия. Режим временной блокировки пользователя позволяет сотрудникам отойти с рабочего места без опасения, что в это время посторонний может получить доступ к программе.
Инструкция
Необходимость временного отключения работающего (активного) пользователя появляется при эксплуатации сетевой версии программы. Непременным условием для подключения режима временной блокировки активного пользователя является защищенный паролем вход в программу.
Список активных пользователей в программе 1С доступен для просмотра через «Монитор пользователей». Найдите в главном меню программы «Сервис». Далее в подменю «Монитор пользователей» пункт «Активные пользователи».
Каждая строка открывшегося списка содержит сведения о пользователя х, работающих в данный момент в программе 1С. Кроме фамилии пользователя можно видеть время начала работы в программе и компьютер локальной сети, на котором работник запустил программу 1С.
Если пользователю нужно на время покинуть рабочее место, он может не закрывать программу. Удобнее использовать режим временной блокировки. Для входа нажмите на панели инструментов значок «Временная блокировка», название всплывает при подведении курсора к значку. Или выберите в меню «Сервис» пункт «Временная блокировка». Откроется диалоговое окно с именем активного пользователя . Режим временной блокировки пользователя включен. Никакие действия в программе в этом режиме невозможны.
Для отмены временной блокировки необходимо ввести пароль пользователя , чье имя обозначено в диалоговом окне. Пароль должен быть тем же, с которым пользователь входил в программу в начале работы. После ввода пароля нажмите «ОК». Режим временной блокировки отключен. При включенном режиме временной блокировки компьютер сотрудника по-прежнему находится в списке активных.
Для вызова списка активных пользователей следует выбрать пункт "Активные пользователи" из подменю "Монитор пользователей" меню "Сервис" главного меню программы.
При обращении к этому режиму появляется окно, содержащее список пользователей, работающих в настоящий момент с данной информационной базой.
Просмотр списка пользователей
Каждая строка списка соответствует отдельному запуску 1С:Предприятия конкретным пользователем. Например, если один пользователь запустил 1С:Предприятие одновременно и в режиме "Конфигуратор" , и в режиме "1С:Преднриятие" , то в списке для данного пользователя будет выводиться две строки.
В левой части каждой строки выводится пиктограмма, отображающая режим запуска 1С:Предприятия. Особой пиктограммой (с восклицательным знаком) отмечается монопольный режим запуска 1С:Предприятия.
В каждой строке выводится следующая информация:
- имя пользователя;
- дата и время начала работы пользователя;
- наименование компьютера пользователя.
Наименование компьютера является именем компьютера в локальной сети. Если компьютер не подключен к локальной сети, то имя компьютера может быть пустое. Имя компьютера позволяет определить, с какого компьютера пользователь запустил 1С:Предприятие.
В нижней части окна выводится количество подключений, то есть количество работающих пользователей с учетом различных режимов запуска.
Навигация по списку пользователей выполняется с помощью клавиш и мыши, аналогично табличным частям форм 1С:Предприятия. Так же, как и в других формах с табличной частью, в списке пользователей доступен произвольный поиск.
Обновление списка пользователей
Список активных пользователей может автоматически обновляться с некоторой периодичностью. При обновлении список заполняется заново, при этом в нем отражается актуальный на текущий момент состав пользователей. Режим обновления и частота задаются в режиме "Настройка параметров системы" (пункт "Параметры" из меню "Сервис" главного меню программы, закладка "Монитор" ).
Для принудительного обновления списка пользователей следует выбрать пункт "Обновить" меню "Действия" , или нажать клавишу F5 , или нажать соответствующую кнопку панели инструментов.
Просмотр действий пользователя
При просмотре списка активных пользователей существует возможность открыть журнал регистрации с фильтром по текущему пользователю, то есть тому, на котором установлен курсор в списке. Фактически, это позволяет просмотреть историю действий конкретного пользователя. Для этого нужно выбрать пункт "История работы пользователя" в меню "Действия" , или нажать соответствующую кнопку панели инструментов, или дважды щелкнуть мышкой по строке списка активных пользователей.
- экземпляр клиентского приложения «1С:Предприятие»
- экземпляр веб-приложения, где исполняется веб-клиент
- экземпляр внешнего соединения, полученный из объекта V83.COMConnector
- 1 экземпляр фонового задания
- 1 обращение к Web-сервису
В параметрах время засыпания сеанса и время удаления неиспользуемого спящего сеанса в разделе Администрирование/ Параметры информационной базы можно установить интервал времени, по истечении которого неактивный сеанс переводится в спящий режим и интервал времени, по истечении которого спящий сеанс завершается. Я предлагаю такие параметры параметры – 300 и 10 соответственно.
Если пользователь покидает базу (завершил сеанс) – его сеансовые данные удаляются. В режиме клиент сервер, сеансы хранятся на кластере серверов, за это отвечает менеджер кластера, именно для этого существует сервис сеансовых данных. Чтобы ускорить работу, данные сеансов кешируются в рабочих процессах и в толстых клиентах. При перезапуске кластера серверов данные сеансов будут сохранены. В том случае если активный пользователь не выполнил ни одного обращения к кластеру в течение 20-ти минут и сеанс не назначен соединению, то сеанс удаляется вместе с его данными. Для поддержания сеанса тонкий клиент и веб-клиент обеспечивают обращение к кластеру не реже 1 раза в 10 минут.
Однако. из-за нештатного завершения, сеанс может блокироваться и не переходить в спящий режим, и следовательно, завершиться автоматически не может и нужно их удалить через консоль сервера предприятия
Однако в файловом режиме, для снятия заблокированного сеанса веб-клиента не достаточно перезагружать web-сервер apache. Это обычно не помогает. Можно попытаться перезагружать ПК, где запущен браузер, но это тоже иногда не помогает. Лучше всего помогает запустить конфигуратор от имен администратора и снова опубликовать ИБ в разделе Администрирование/Публикация на веб- сервере.