Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Скрипт для отключения юзеров

Скрипт для отключения юзеров
Я
   KoalaJustKoala
 
02.03.21 - 08:28
Господа 1с-ники, я тут решил *поиграться* с сервером и нашел и переделал под себя вот такой вот скрипт:
Option Explicit

Dim UserName
Dim UserPass
Dim ServerName
Dim BaseName
#имя пользователя базы 1С:Предприятия
UserName = «*****»
#пароль пользователя базы 1С:Предприятия
UserPass = «*****»
#имя кластера 1С:Предприятия
ServerName = «127.0.0.1»
#имя базы 1С:Предприятия к которой подключаемся
BaseName = «TestTMC»

Dim Connector
Dim AgentConnection
Dim Cluster
Dim Clusters
Dim WorkingProcess
Dim WorkingProcesses
Dim WorkingProcessConnection
Dim ibDesc
Dim Connections
Dim Connection
Dim ConnectString
Dim IBB
Dim IBBl
Dim Sessions
Dim ISe
Dim SessionsActiv

Set Connector = CreateObject(«V83.COMConnector») # указать в зависимости от вашей версии платформы V8, V81, V82, V83
MsgBox («Начало»)
Set AgentConnection = Connector.ConnectAgent(ServerName)
Clusters = AgentConnection.GetClusters()
Dim Q,W,I

For Q = LBound(Clusters) to UBound(Clusters)
    
    Set Cluster = Clusters(Q)
    
    #Указываем доступ к консоли 1С:Предприятия (только в том случае если определён администратор кластера, иначе прописать просто » » (пробелы))
    AgentConnection.Authenticate Cluster, «UserName», «UserPass»
    WorkingProcesses = AgentConnection.GetWorkingProcesses(Cluster)
    IBB = AgentConnection.GetInfoBases(Cluster)
    
    For I = LBound(IBB) To UBound(IBB)
        Set IBBl = IBB(I)
        Sessions = AgentConnection.GetInfoBaseSessions (Cluster,IBBl)
            
        For ISe = LBound(Sessions) To UBound(Sessions)
        Set SessionsActiv = Sessions(ISe)
            
        If (SessionsActiv.AppID <> «COMConsole») then
            AgentConnection.TerminateSession Cluster,SessionsActiv
            MsgBox («Отключаем_Сесию»)
        End if

    Next
Next

# Отключение соединение (если потребуеться а пока оставлю здесь)

# For W = LBound(WorkingProcesses) to UBound(WorkingProcesses)
#     Set WorkingProcess = WorkingProcesses(W)
#     ConnectString = WorkingProcess.HostName & «:» & WorkingProcess.MainPort
#     Set WorkingProcessConnection = Connector.ConnectWorkingProcess(ConnectString)
#     WorkingProcessConnection.AddAuthentication UserName, UserPass
#     Set ibDesc = WorkingProcessConnection.CreateInfoBaseInfo()
#     ibDesc.Name = BaseName
#     Connections = WorkingProcessConnection.GetInfoBaseConnections(ibDesc)
#     For I = LBound(Connections) To UBound(Connections)
#         Set Connection = Connections(I)
#         If (Connection.AppID <> «COMConsole») then
#             WorkingProcessConnection.Disconnect Connection
#             MsgBox («Отключаем_Соединение»)
#         End if
#     Next
# Next
Next
MsgBox («Конец»)



Вот в этом месте:
Clusters = AgentConnection.GetClusters()
Ждет от меня какого-то выражения в скобках
Погуглил чего-то явного не нашел, до этого была проблема с библиотекой в reg32, но её успешно и быстро решил
Может кто сталкивался с таким?
   vbus
 
1 - 02.03.21 - 08:36
Ничего в этом не понимаю.
set Cluster=AgentConnection.GetClusters() (0)
не?
   KoalaJustKoala
 
2 - 02.03.21 - 08:38
(1) хм, ну попробовать можно
   KoalaJustKoala
 
3 - 02.03.21 - 08:39
строка:36 знак:44
+ Set Clusters = AgentConnection.GetClusters()
+                                            ~
После ''('' ожидалось выражение.
Не так оно работать не хочет (
   Галахад
 
4 - 02.03.21 - 08:56
Да вроде правильно.

А что за фигурные кавычки? Может дело в них?
   KoalaJustKoala
 
5 - 02.03.21 - 08:57
(4) Хорошая мысля щас попробую с обычными
   vbus
 
6 - 02.03.21 - 08:59
   KoalaJustKoala
 
7 - 02.03.21 - 09:01
(6) Если честно нет, видимо не нашло, щас гляну, спасибо :3

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.