Принудительное завершение работы пользователей без администраторских прав на сервере
Мы работаем в 1С:Управление Торговлей 8.1 . У меня нет администраторских прав на сервере, но есть полные права в 1С. Можно как-то программно (или регламентным заданием), не имея администраторских прав на сервере, но имея полные права в 1С, принудительно завершить работу всех пользователей без полных прав?
Заранее благодарен за подсказки!
Заранее благодарен за подсказки!
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
В чем может быть причина данной ошибки?
Ошибка при вызове метода контекста (ConnectAgent): Произошла исключительная ситуация (V81.COMConnector.1): server_addr=tcp://kdsv0703:1540 descr=Ошибка сетевого доступа к серверу
(Windows Sockets - 10061(0x0000274D). Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ) line=569 file=.\src\DataExchangeTcpClientImpl.cpp
Ошибка при вызове метода контекста (ConnectAgent): Произошла исключительная ситуация (V81.COMConnector.1): server_addr=tcp://kdsv0703:1540 descr=Ошибка сетевого доступа к серверу
(Windows Sockets - 10061(0x0000274D). Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ) line=569 file=.\src\DataExchangeTcpClientImpl.cpp
Да, у меня тож было такое иногда. Решалось перезапуском службы в сервере "Агент сервера 1с:Предприятия". Точно не помню. Но так как вы доступа к нему не имеете, то выход только один - кодировать. Алгоритм - добавить новую константу "ЗавершитьСеанс" и подключить обработчик ожидания, который проверяет к примеру раз в минуту ее значение. Если Истина, то завершать сеанс.
Хотя раз вы не можете выгнать всех пользователей, то и добавить новый объект метаданных в конфигурацию БД не получится.. Тогда не константу, а.. ну не знаю даже. может считывать значение из текстового файла.. но это долго, так что тогда не раз в минуту проверять, а раз в час. А так так блокировка соединений установлена. то заново пользователи подключиться не смогут.
Не, щас смотрю - левый алгоритм. Может кто-нить лучший выход предложит.
Хотя раз вы не можете выгнать всех пользователей, то и добавить новый объект метаданных в конфигурацию БД не получится.. Тогда не константу, а.. ну не знаю даже. может считывать значение из текстового файла.. но это долго, так что тогда не раз в минуту проверять, а раз в час. А так так блокировка соединений установлена. то заново пользователи подключиться не смогут.
Не, щас смотрю - левый алгоритм. Может кто-нить лучший выход предложит.
ЗавершитьРаботуПользователей(ложь); У меня прекрасно работает без всякого обработчика ожидания. Все «вылетают» из базы. Но я не уверен, не повредит ли это базе, когда пользователи будут выбрасываться при помощи данной команды.
(11)
Значит.. ну что какое-то окно открыто так, что пока оно не будет закрыто, никакое другое окно недоступно. То есть оно открыто методом формы ОткрытьМодально(), а не Открыть().
// Завершение работы только при условии удачной установки монопольного режима работы
// Вызывается, только при запуске системы от имени администратора с параметром запуска "ЗавершитьРаботуПользователей"
//
Процедура ЗавершитьРаботуПользователей() Экспорт
Значит.. ну что какое-то окно открыто так, что пока оно не будет закрыто, никакое другое окно недоступно. То есть оно открыто методом формы ОткрытьМодально(), а не Открыть().
(12) Нет, данные потеряны в любом случае не будут, единственное не будут записаны в базу не сохраненные данные. Ну то есть пользователь создал документ, но его не записал. И если вызвать этот метод, то соответственно его просто выкинет, а этот док в базу записан не будет. А модальность окна, Вы не поняли, связана не с потерей данных, а с невозможностью выгнать пользователя.То есть если таких окон нет, то его без проблем выкинет этой процедурой, а вот если нет - то нифига.
Зачем модальные окна? Ну это как бы получение окна монопольно, по каким-то причинам пользователь не должен лазать по другим окнам и менять данные. Навскидку точный пример не скажу((
Зачем модальные окна? Ну это как бы получение окна монопольно, по каким-то причинам пользователь не должен лазать по другим окнам и менять данные. Навскидку точный пример не скажу((
(12) Во, нашел в УТ. В доке "Реализация товаров и услуг" страница "Товары" - Заполнить - Добавить из поступления. Там для выбора открывается список поступлений. И открывается он монопольно, иначе пользователь если будет делать че-нить другое, а потом вернется, то он подумает, что это просто список поступлений. Ну обычно модальность реализована именно в таких случаях. Но как ты понимаешь такие формы надолго не открывают)) Просто подожди минутку и его можно будет вырубить)) Если конечно пользователь не решит резко куда-нить смыться. Но это редко бывает с модальными окнами, всякие списки и отчеты может оставить открытыми, а такие вещи нет.
(14) Стопроцентно не уверен, но по логике вещей его выкинуть не должно. Но повторюсь, не уверен..
(14) Стопроцентно не уверен, но по логике вещей его выкинуть не должно. Но повторюсь, не уверен..
Понятно. То что документ не будет записан – это не проблема. Я думал, что вдруг в данный момент кто-то как раз проводит документы и идет запись по регистрам. И если кого-то вдруг выбросит не прервет ли программа данную запись?
(21) ЗавершитьРаботуПользователей - устанавливает блокировку на базу, каждый сеанс (соединение) проверяет это и завершается. Завершается, но не сразу, а в зависимости от установленного времени. Т.е. выполняется куча действий в каждом запушенном сеансе, а список действий зависит от конкретной версии конкретной конфигурации. Но может и не завершаться, зависит от открытых модальных окон и параметров запуска.
ConnectToWorkProcess.Disconnect - рвет соединение и все.
ConnectToWorkProcess.Disconnect - рвет соединение и все.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот