В обработке используется стандартный функционал 1С Предприятия для отключения всех активных сеансов пользователей от текущей базы данных. Через COM-соединения обработка подключается к консоли сервера 1С и удаляет сеансы (аналогично ручному удалению через консоль сервера). Идея взята из типовой конфигурации 1С Документооборот КОРП. Для корректной работы в конфигурации необходимо наличие константы «ПараметрыАдминистрированияИБ» с информацией о админском логине и пароле (константа по умолчанию уже присутствует в типовых конфигурациях от 1С).
На основе процедур, заложенных в данной обработке, легко создать регламентное задание, отключающее пользователей от базы данных по расписанию (например, у нас в организации она отключает все сеансы для автоматического обновления 1 раз в сутки ночью).
Отключение всех сеансов пользователей от серверной базы данных, использующее стандартный функционал 1С.
Перейти к публикации
спасибо
А логин/пароль разве вводить не нужно? На скриншоте не увидел..
Логин/пароль хранятся в константе ИБ. В типовых конфигурациях это константа заполняется по умолчанию. Важно так же отметить что это должны быть логин/пароль от консоли сервера для данной базы, они не всегда совпадают с логином/паролем информационной базы.
Посмотрим-заценим сейчас 😉
Хорошо бы предоставить полный интерфейс действия: кроме удаления пользователей из сеансов еще бы возможность включения блокировки базы. А то юзеры порой очень настойчивы)
Добиваемся аналогичного эффекта с помощью простого батника:
net stop «1C:Enterprise 8.1 Server Agent»
net start «1C:Enterprise 8.1 Server Agent»
Отключает сразу всех от всех баз на этом сервере предприятия. Грубо, но просто.
2WellMaster
Раньше поступали аналогично. Но с выходом последних релизова платформы (начиная с 8.2.13) срабатывает далеко не всегда. На 8.2.14 можно отключать сервис хоть на 3 часа — сеансы останутся висеть, особенно если речь идет о тонком клиенте. 1С адаптирует платформу для работоспособности с плохими каналами связи, где простое отключение связи между сервером и клиентом — обычное дело. Ваш метод очень скоро окажется полностью неработоспособен.
(7) спасибо за информацию. В таком случае, предлагаемый инструмент действительно будет необходим.
Спасибо за обработку. Будем отключать пользователей в любой момент.
полезная обработка, а зависшие сеансы тоже отключает?
2cerg110
Да, зависшие сеансы отключает. Единственное, с чем не может справиться — зависшие блокировки, когда сеанса уже уже существует. Т.е. сеанс не виден в консоли сервера 1С, а блокировка в той же консоли видна. Но такие случаи бывают крайне редко и лично я не знаю как решить эту проблему кроме как рестартом сервиса сервера 1С.
очень удобно для терминала
Боян многолетней давности. Ещё coder1cv8 делал в 2008 году, плюс там ещё можно было сообщения отправлять, выборочно отключать и многое другое. А тут — ни сеансов не видно, ни избирательности… Одна кнопка и всё. Некомильфо, считаю.
ах да, кстати, тот сеанс, из которого кнопка нажата, тоже прервётся?
скачал. пока нет возможности проверить.
А будет ли работать обработка если допустим запускать батником
где:
server — имя сервера
base — имя базы на сервере
user — имя пользователя 1с с правами админа
1234- пароль пользователя 1с
Не проверял возможность работы при запуске через bat. У нас запускается регламентным заданием, текст встроен в конфигурацию.
Еще как вариант можно делать так
Первая строка меняет настройки на сетевом интерфейсе, тем самым рвет все соединения
Вторая строка выгружает базу в dt’шник
Третья строка делает наши стандартные настройка на сетевом интерфейсе
Четвертая строка архивирует наш dt’шник и задает ему имя с датой.
Насчет первой строки не уверен, что это будет всегда работать. Сейчас соединения не рвутся даже при выключении сервера 1С на 10 минут. 1С готовит платфрму к работе в облаках )
на 540 точно работает! Проверенно временем. Просто не всегда можно отключить сервер от сети.имхо
Какие права нужны пользователю для отключения?
Будет ли работать обработка, если база серверная, работа ведется через терминал. Причем консоли сервера 1С находится на другом компьютере, к которому нету доступа.
(20) smilejka, права админа. будет.
а как удалить зависший сеанс в 1с 8.1?
Актуально, у нас вечная с этим проблема.
(22) wowkai, обработкой под 8.1 🙂 Поищите тут в архивах точно валяется
Константу ПараметрыАдминистрированияИБ я так понимаю программно нужно поменять?
(17) yavasilek, это сработает только при условии что сервер 1С:Предприятие и сервер БД находятся на одной железке. А как же вы собираетесь делать выгрузку в .dt если серверы физически разнесены на разные железки?
(26) dimakaster, мне какая разница где они находятся? главное чтоб у меня был доступ к серверу 1с. А на той машинке на которой я буду запускать батник — мне главное чтоб 1С стояла.
(27) yavasilek, стоп, а к БД программа как будет обращаться если сеть отрублена, а сервер БД на другой железке?
(28) dimakaster, теперь я понял о чем речь. Можно попробовать вернуть сетевые настройки сразу после их смены, сделать не большую задержку и вернуть. Клиенты ведь уже отвалятся? Хотя может и нет … надо будет попробовать.
+ автору
спасибо)
Скачал себе для управляемого приложения, там даже нет управляемой формы. Смысл тогда писать, что для 8.2?
+1
А регламентные задания отключит?
у меня не работает ! вообще ничего не происходит !
база клиен-серверная
бухгалтерия типовая
Только недавно думали про такое, будем пробовать.
Здраствуйте Уважаемый разработчик с описанием как то туговато нету толком ни скриншотов ни настройки. По функцианалу то что нада(Вернеее то что ищу).Как в работу будет не знаю (Скачаю протестирую отпишусь)
Спасибо. Сейчас нужна такая обработка,
чтобы в режисе 1с можно было завершать работу пользователей выборочно,
не заходя в кансоль. Скачаем, протестируем.
Спасибо, протестирую при возможности. Хорошая обработка, и тоже интересует: зависшие сеансы отключает?
Попробовал. Не отключила тех пользователей, у которых в настройках было установлено «Предупреждать при завершении» У них открылось модальное окно, а надать на подтверждение некому
Друзья,так что там с зависшими сеансами?
У меня зависшие сеансы отключает. Кроме тех сеансов, которые остались в блокировках, но не видны в списке сеансов в консоли.
(43) Да, есть такая проблема 🙁
Не работает обработка, может просто на новых платформах.
(45) BuchCentr, а какую платформу Вы используете, можете уточнить?
Обработка и не подумала удалить зависшие сеансы.
не удаляет
Спасибо автору за обработку, я ее переделал на управляемые формы + регл задание сделал все нормально работает
(49) flyDrag,
выложите пожалуйста ваши регл задания , было бы интересно посмотреть.
Спасибо!
в 8.3 будет отрабатывать из рег задания?
Спасибо большое!
Все отлично работает!
ошибка выходит
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(290)}: Ошибка при вызове метода контекста (GetSessions)
СписокСеансов = АгентСервера.GetSessions(Кластер);
по причине:
Произошла исключительная ситуация: Недостаточно прав пользователя на управление кластером Local cluster
(17) Тогда проще использовать net session /delete