порт у вас вроде бы стандартный 1540, все верно определилось, на 17хх у вас не сервер 1с наверное? Это видно по строке
"C:\Program Files\1cv8\8.3.15.1700\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
в свойствах службы агента сервера 1с, строка запуска....
тут вобщем то код пятиминутный, почти полностью дернут из общего модуля СоединенияИБКлиентСервер, функция ПолучитьАктивныеСеансыИБ. Затем из полученных перебираю и закрываю только спящие...
Процедура КнопкаВыполнитьНажатие(Кнопка)
ПараметрыАдминистрированияИБ = СоединенияИБ.ПолучитьПараметрыАдминистрированияИБ();
НастройкаБлокировки = ПараметрыАдминистрированияИБ;
ВсеКромеТекущего = Истина;
Результат = Новый Структура("АгентСервера,КластерСерверов,Сеансы", Неопределено, Неопределено, Новый Массив);
ПодстрокиСтрокиСоединения = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(
СтрокаСоединенияИнформационнойБазы(), ";");
ИмяСервера = СтроковыеФункцииКлиентСервер.СократитьДвойныеКавычки(Сред(ПодстрокиСтрокиСоединения[0], 7));
ИмяИБ = СтроковыеФункцииКлиентСервер.СократитьДвойныеКавычки(Сред(ПодстрокиСтрокиСоединения[1], 6));
COMСоединитель = Новый COMОбъект(ОбщегоНазначения.ИмяCOMСоединителя());
РазделительПорта = Найти(ИмяСервера, ":");
Если РазделительПорта > 0 Тогда
ИмяИПортСервера = ИмяСервера;
ИмяСервера = Сред(ИмяИПортСервера, 1, РазделительПорта - 1);
НомерПортаКластера = Число(Сред(ИмяИПортСервера, РазделительПорта + 1));
ИначеЕсли НастройкаБлокировки.ПортКластераСерверов <> 0 Тогда
НомерПортаКластера = НастройкаБлокировки.ПортКластераСерверов;
Иначе
НомерПортаКластера = COMСоединитель.RMngrPortDefault;
КонецЕсли;
ИдентификаторАгентаСервера = ИмяСервера;
Если НастройкаБлокировки.ПортАгентаСервера <> 0 Тогда
ИдентификаторАгентаСервера = ИдентификаторАгентаСервера + ":" +
Формат(НастройкаБлокировки.ПортАгентаСервера, "ЧГ=0");
КонецЕсли;
// Подключение к агенту сервера
АгентСервера = COMСоединитель.ConnectAgent(ИдентификаторАгентаСервера);
Результат.АгентСервера = АгентСервера;
// Найдем необходимый нам кластер
Для каждого Кластер Из АгентСервера.GetClusters() Цикл
Если Кластер.MainPort <> НомерПортаКластера Тогда
Продолжить;
КонецЕсли;
Результат.КластерСерверов = Кластер;
АгентСервера.Authenticate(Кластер, НастройкаБлокировки.ИмяАдминистратораКластера,
НастройкаБлокировки.ПарольАдминистратораКластера);
// Получаем список сеансов
НомерТекущегоСеанса = СоединенияИБПовтИсп.ПараметрыОтключенияСеансов().НомерСеансаИнформационнойБазы;
СписокСеансов = АгентСервера.GetSessions(Кластер);
Для Каждого Сеанс из СписокСеансов Цикл
Если ВРег(Сеанс.InfoBase.Name) <> ВРег(ИмяИБ) Тогда
Продолжить;
КонецЕсли;
Если НЕ ВсеКромеТекущего ИЛИ (НомерТекущегоСеанса <> Сеанс.SessionID) Тогда
Результат.Сеансы.Добавить(Сеанс);
КонецЕсли;
КонецЦикла;
КонецЦикла;
//Теперь пройдемся по сеансам и если он спящий - выкинем
Для каждого сеанс из Результат.Сеансы цикл
Если Сеанс.Hibernate тогда
СоединенияИБКлиентСервер.ОтключитьСеанс(сеанс.SessionID, "Злой админ послал вас на ...")
КонецЕсли;
КонецЦикла;
Предупреждение("ВСЕ ДЕМОНЫ УБИТЫ!!!", 5,"Удаление зависших сеансов");
ЭтаФорма.Закрыть();
КонецПроцедуры
Показать