Имя: Пароль:
1C
1С v8
И снова программное убиение сеансов
0 YurAnt
 
29.07.13
08:27
Доброго времени суток, господа-форумчане.
Тема заезжена вдоль и поперек... однако здравствуйте.
Проблема "выгнать всех активных/зависших/невышедших вовремя юзеров"

Наткнулся вот на такой код:

Процедура ЗавершениеПользователей() Экспорт
    Коннектор = Новый COMОбъект("V82.COMConnector");
    Сервер = Коннектор.ConnectWorkingProcess("TestServer");
        
    // Аутентифицироваться с административными правами в нужной базе.
    
    Сервер.AddAuthentication("Администратор", "");
        
    // Создать объект нужной информационной базы.
    
    ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
    ИнформационнаяБаза.Name = "Test_Base";
        
    // Получить соединения базы.
    
    СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза);
        
    // Разорвать соединения клиентских приложений.
    
    Для Каждого Соединение Из СоединенияБазы Цикл
        Сервер.Disconnect(Соединение);
    КонецЦикла;
КонецПроцедуры



Работать не хочет:

Сервер = Коннектор.ConnectWorkingProcess("tcp:\\192.168.0.73:1540");
//тут пробовал и локалхост и 192.168.0.1 и то что занесено выше - текущий ip в сети)
Сервер.AddAuthentication("Administrator", "qweqwe");
ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
ИнформационнаяБаза.Name = "C:\Users\admin2\Desktop\all_bases\UECM_ACC_82";

имя перебирал тоже по всякому и полный путь, как указано выше, и вариант "UECM_ACC_82"...

(если я правильно понимаю имя базы к-е задается на входе "меню выбора инф баз - однозначно не то, что нужно, поскольку там скорее ссылки с произвольными именами)

Итак. Проблема - что именно указывается в сервере и имени ИБ ?
Сейчас подключение описанное выше вызывает ошибку:

{ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(4)}: Ошибка при вызове метода контекста (ConnectWorkingProcess)
    Сервер = Коннектор.ConnectWorkingProcess("tcp:\\192.168.0.73:1540");
по причине:
Произошла исключительная ситуация (V82.COMConnector.1): server_addr=tcp://192.168.0.73:1540 descr=192.168.0.73:1540:Ошибка сетевого доступа к серверу
(Windows Sockets - 10061(0x0000274D). Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. );
line=545 file=Src\DataExchangeTcpClientImpl.cpp

PS
Бух 8.2
обработка внешняя (если надо в конфигу зашить - зашью, только поясните...)

Вот собственно и пытаюсь разобраться...
Благодарен за любые советы.
С ув. YurAnt.
1 skunk
 
29.07.13
08:29
2 Keyn
 
29.07.13
08:44
может кому поможет
это батником убиваются сетевые подключения
вот так просто можно выкинуть пользователей из базы

=====================
@echo off


net file | findstr /I V8NameBaseKatalog>lst.txt
for /f  %%a in (lst.txt) do net file %%a /CLOSE
del /q lst.txt
=====================
3 YurAnt
 
29.07.13
09:26
skunk, Keyn спасибо вам за советы.
Поскольку задача ставилась - убить зависшие подключения и не вышедших вовремя юзеров, то так и решили данную проблему (убили сетевые подключения).

Skunk, но вот такой вопрос: а если речь идет о файловом варианте ?

// данная функция не умеет обламывать файловый вариант работы базы
стрОшибка = "Не верный тип информационной базы!";
возврат ложь;
4 Maxus43
 
29.07.13
09:33
Коннектор = Новый COMОбъект("V81.COMConnector");
Сервер = Коннектор.ConnectWorkingProcess("TestServer");
    
// Аутентифицироваться с административными правами в нужной базе.
Сервер.AddAuthentication("Администратор", "");
    
// Создать объект нужной информационной базы.
ИнформационнаяБаза = Сервер.CreateInfoBaseInfo();
ИнформационнаяБаза.Name = "Test_Base";
    
// Получить соединения базы.
СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза);
    
// Разорвать соединения клиентских приложений.
Для Каждого Соединение Из СоединенияБазы Цикл
    Сервер.Disconnect(Соединение);
    
КонецЦикла;
(с)
5 YurAnt
 
29.07.13
09:52
(4) ==> (0)
рекурсия к 1му вопросу :)
6 Maxus43
 
29.07.13
09:54
(5) какой вопрос конкретно?
7 skunk
 
29.07.13
10:23
(3)то наверное смотреть (2)
8 YurAnt
 
29.07.13
10:40
(6) Maxus43,

Сервер = Коннектор.ConnectWorkingProcess("tcp:\\192.168.0.73:1540");
//тут пробовал и локалхост и 192.168.0.1 и то что занесено выше - текущий ip в сети)


ВнешняяОбработка.ВнешняяОбработка1.МодульОбъекта(4)}: Ошибка при вызове метода контекста (ConnectWorkingProcess)
   Сервер = Коннектор.ConnectWorkingProcess("tcp:\\192.168.0.73:1540");
по причине:
Произошла исключительная ситуация (V82.COMConnector.1): server_addr=tcp://192.168.0.73:1540 descr=192.168.0.73:1540:Ошибка сетевого доступа к серверу

(Windows Sockets - 10061(0x0000274D). Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. );
line=545 file=Src\DataExchangeTcpClientImpl.cpp
9 don_Rumata
 
31.07.13
17:36
(0) Тут есть работающий пример: http://infostart.ru/public/77671/