|
выгон юзеров из 8.1 / платф . УПП
|
|||
---|---|---|---|
#18+
Приветствую всех ! кто может попьюле объяснить Как надежно сбрасывать юзеров для нужных дел в 1С 8.х ... Подскажите , пжлст , хорошие идеи , лучше на уровне внешней обработки , кода ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 19:25 |
|
выгон юзеров из 8.1 / платф . УПП
|
|||
---|---|---|---|
#18+
ты что-то темнишь, в УПП уже все есть: Сервис-Блокировка установки соединений с информационной базой F1: С помощью обработки можно запретить установку соединения пользователей с информационной базой и завершить работу всех активных пользователей (включая пользователя, инициировавшего блокировку). Эта возможность полезна, например, когда для выполнения административных действий требуется, чтобы текущие пользователи завершили свои сеансы работы, и в то же время новые пользователи не могли подключиться к информационной базе. ... Процедура ЗавершитьРаботуПользователей() Экспорт Соединения = ПолучитьСоединенияИнформационнойБазы(); Если Соединения.Количество() = 1 Тогда // Отключены все пользователи, кроме текущего сеанса // В последнюю очередь завершается сеанс, запущенный с параметром "ЗавершитьРаботуПользователей". // Такой порядок отключений необходим для обновления конфигурации с помощью пакетного файла ЗавершитьРаботуСистемы(Ложь); Возврат; КонецЕсли; // Получим текущее значение параметров блокировки ТекущийРежим = ПолучитьБлокировкуУстановкиСоединений(); БлокировкаУстановлена = ТекущийРежим.Установлена; ВремяНачалаБлокировки = ТекущийРежим.Начало; ИнтервалОтключения = - 5 * 60; ТекущийМомент = ТекущаяДата(); Если БлокировкаУстановлена и (НЕ ЗначениеЗаполнено(ВремяНачалаБлокировки) ИЛИ ВремяНачалаБлокировки - ТекущийМомент <= ИнтервалОтключения) Тогда // через 5 минут после начала блокировки сеансы всех пользователей должны быть отключены // если этого не произошло пробуем принудительно прервать соединение в клиент-серверном режиме работы. ОтключитьОбработчикОжидания("ЗавершитьРаботуПользователей"); ПодстрокиСтрокиСоединения = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаСоединенияИнформационнойБазы(),";"); Если ПодстрокиСтрокиСоединения.Количество()> 1 и Лев(ПодстрокиСтрокиСоединения[0], 5) = "Srvr=" и Лев(ПодстрокиСтрокиСоединения[1], 4) = "Ref=" Тогда ИмяСервера = Сред(ПодстрокиСтрокиСоединения[0],7, СтрДлина(ПодстрокиСтрокиСоединения[0]) - 7); ИмяИБ = Сред(ПодстрокиСтрокиСоединения[1],6, СтрДлина(ПодстрокиСтрокиСоединения[1]) - 6); Попытка connector = Новый COMОбъект("V81.ComConnector"); server = connector.ConnectServer(ИмяСервера); ПодстрокиПараметровЗапуска = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ПараметрЗапуска,";"); Если ПодстрокиПараметровЗапуска.Количество() > 2 и Врег(ПодстрокиПараметровЗапуска[0]) = Врег("ЗавершитьРаботуПользователей") Тогда server.AddAuthentication(ПодстрокиПараметровЗапуска[1], ПодстрокиПараметровЗапуска[2]); КонецЕсли; ibDesc = server.CreateInfoBaseInfo(); ibDesc.Name = ИмяИБ; connections = server.GetIBConnections(ibDesc); Для каждого connection Из connections Цикл Если Не ИмяПользователя() = connection.userName Тогда server.Disconnect(connection); КонецЕсли; КонецЦикла; Исключение ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки()); КонецПопытки; КонецЕсли; Соединения = ПолучитьСоединенияИнформационнойБазы(); Если Соединения.Количество() > 1 Тогда Сообщение = "Не удалось завершить работу пользователей:"; Для каждого Соединение Из Соединения Цикл Если Не Соединение.НомерСоединения = НомерСоединенияИнформационнойБазы() Тогда Сообщение = Сообщение + Символы.ПС + " - " + Соединение; КонецЕсли; КонецЦикла; Сообщить(Сообщение, СтатусСообщения.Внимание); ЗаписьЖурналаРегистрации("Завершение работы пользователей", УровеньЖурналаРегистрации.Предупреждение, , , Сообщение); Иначе Сообщить("Завершение работы пользователей выполнено успешно.", СтатусСообщения.Информация); КонецЕсли; ЗавершитьРаботуСистемы(Ложь); Возврат; КонецЕсли; КонецПроцедуры // ЗавершитьРаботуПользователей ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 19:40 |
|
|
start [/forum/topic.php?fid=28&fpage=176&tid=1525086]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
323ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
374ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 746ms |
0 / 0 |