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

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