Имя: Пароль:
1C
1С v8
VBS скрипты для работ с 1С
0 RalexR
 
25.05.12
13:37
Добрый день! Ищу VBS команду для установки блокировки фоновых заданий в свойствах серверной базы.Кто-нибудь сможет помочь?
1 Maxus43
 
25.05.12
13:37
при чем тут VBS?
2 Ranger_83
 
25.05.12
13:39
(0)в консоли сервера 1с в свойства базы галочка
3 fisher
 
25.05.12
13:41
Думаю, СП может помочь. Там есть нужная "VBS-команда"
4 RalexR
 
25.05.12
13:56
Скрипт дописываю для выполнения регламентных заданий. Хочу на всякий случай перед началом выгрузки бекапа заблокировать соединения и фоновые задания, после выгрузке разблокировать всё. вот.
5 RalexR
 
25.05.12
14:02
никто ничего не подскажет? в синтаксис-помошнике нужную команду не нашёл!
6 RalexR
 
25.05.12
14:03
точнее это наверное свойство базы.
7 pumbaEO
 
25.05.12
14:11
' Отключает включает пользователей
Sub User_Off_On(id,iType)
   Dim obj_ThisCluster

   Str_Base=BDArray(id,1)
   Str_ServerAndPort=BDArray(id,0)
   
   Select Case iType
       Case 0  
           AddLog id,"Запуск установки блокировки базы данных"
       Case 1  
           AddLog id,"Запуск прерывание соединений пользователей"
       Case Else  
           AddLog id,"Запуск отключения блокировки базы данных "
   End Select
   
   AddLog id,"Состояние БД:"&CStr(BDArray(id,2))
   
   Select Case iType
       Case 0  

       Case 1  
           If BDArray(id,2)>1 Then
               Exit Sub
           End If
       Case Else  
           If BDArray(id,2)>4 Then
               Exit Sub
           End If
   End Select
   
   Str_LogFile=Str_PathLog&Str_Base&".txt"
   
   ' Определяем параметры кластера сервера
   AddLog id,"Определяем параметры кластера серверов"
   
   Str_Server=""
   Str_Port=""

   I_PozPort=InStr(Str_ServerAndPort,":")
   
   If I_PozPort>0 Then
       Str_Server=Left(Str_ServerAndPort,I_PozPort-1)
       Str_Port=Mid(Str_ServerAndPort,I_PozPort+1)
       ' если есть порт
       'то как правило рабочий порт на 1 меньше
       I_Port=CInt(Str_Port)
       If I_Port>0 Then
           Str_Port=":"&CStr(I_Port-1)
       End If
   Else
       Str_Server=Str_ServerAndPort
   End If

   Set Obj_connection = CreateObject("V82.COMConnector")
           
               
   'Получим порт рабочего процесса
   Srt_portWorkProcess=""

   Set Obj_Agent=Obj_connection.ConnectAgent(Str_Server+Str_Port)
   
   For Each obj_Cluster In Obj_Agent.GetClusters()
       On Error Resume Next
       Set Obj_Arr_workProcess=Obj_Agent.GetWorkingProcesses(obj_Cluster)
       If Err.Number<>0 Then
           On Error Goto 0
           Obj_Agent.Authenticate obj_Cluster,Str_UserAdminCluster,Str_PassAdminCluster
       Else
           On Error Goto 0
       End If
       Err.Clear()
       For Each obj_workProcess In Obj_Agent.GetWorkingProcesses(obj_Cluster)
           If obj_workProcess.Running=1 AND obj_workProcess.Use>0 Then
               Srt_portWorkProcess=CStr(obj_workProcess.MainPort)
               
               Set obj_ThisCluster=obj_Cluster
               
               Exit For
           End If
       Next
   Next

   If Srt_portWorkProcess="" Then
       BDArray(id,2)=9
       
       AddLog id,"ERR-->    Не удалось определить порт рабочего процесса"

       Exit Sub
   Else
       AddLog id,"Рабочий процесс:"&Str_Server&":"&Srt_portWorkProcess
   End If
   
   AddLog id,"Авторизация в БД :"
   
   Set obj_ConnectionWorkProcess=Obj_connection.ConnectWorkingProcess(Str_Server&":"&Srt_portWorkProcess)
   
   obj_Arr_obj_ConnectionWorkProcess=obj_ConnectionWorkProcess.GetInfoBases()
   
   For Each obj_IB In obj_Arr_obj_ConnectionWorkProcess
       If UCase(obj_IB.Name)=UCase(Str_Base) Then
           If obj_IB.DBName="" Then
               ' Авторизация
               obj_ConnectionWorkProcess.AddAuthentication Str_UserAdmin,Str_PassAdmin
           End If
           
           If obj_IB.DBName="" Then
               BDArray(id,2)=9
               AddLog id,"ERR-->    Не удалось авторизоваться в базе данных"

               Exit Sub
           Else
               AddLog id,"OK"
           End If
           
           Exit For
       End If
   Next
   
   Select Case iType
       Case 0
           AddLog id,"Установка блокировки базы данных в "&CStr(d_Denied)
           ' устанавливаем блокировку базы
           
           obj_IB.PermissionCode= Str_CodeEnabelBase
           obj_IB.SessionsDenied =True
           obj_IB.DeniedFrom =d_Denied
           obj_IB.DeniedTo = #1/1/100#
           obj_IB.DeniedMessage=Str_DeniedMess
           obj_IB.ScheduledJobsDenied=True
           
           obj_ConnectionWorkProcess.UpdateInfoBase obj_IB
           AddLog id,"ОК"
       Case 1
           AddLog id,"Прерывание соединений пользователей"
           
           obj_Arr_obj_IB_Info=Obj_Agent.GetInfoBases(obj_ThisCluster)
   
           For Each obj_IB_Info In obj_Arr_obj_IB_Info
               If UCase(obj_IB_Info.Name)=UCase(Str_Base) Then
                   
                   Exit For
               End If
           Next
           
           ' Отключаем соединения базы данных
           obj_connectionsV8=Obj_Agent.GetInfoBaseSessions(obj_ThisCluster,obj_IB_Info)
           For Each obj_connectV8 In obj_connectionsV8
               If Not obj_connectV8.AppID="COMConsole" Then
                   AddLog id,"    "&CStr(obj_connectV8.SessionID)&"    "&obj_connectV8.AppID&"    "&obj_connectV8.userName&"    "&obj_connectV8.Host  
                   Obj_Agent.TerminateSession  obj_ThisCluster, obj_connectV8
                   AddLog id,"    ОК"
               End If
           Next
           
           b_notConnection=True
           obj_connectionsV8=Obj_Agent.GetInfoBaseSessions(obj_ThisCluster,obj_IB_Info)
           For Each obj_connectV8 In obj_connectionsV8
               If Not obj_connectV8.AppID="COMConsole" Then
                   b_notConnection=False
                   Exit for    
               End If
           Next
           ' Проверяем нет ли соединений
           If b_notConnection Then
               AddLog id,"Все соединения отключены"
               BDArray(id,2)=2
           Else
               BDArray(id,2)=9
               AddLog id,"ERR - > Не все соединения отключены"
           End If
       Case Else
             AddLog id,"Отключение блокировки базы данных "
           ' Снимаем блокировку базы
           
           obj_IB.SessionsDenied =False
           obj_IB.ScheduledJobsDenied=False
           
           obj_ConnectionWorkProcess.UpdateInfoBase obj_IB
           AddLog id,"ОК"
           BDArray(id,2)=5
           
           If b_NetSend Then
               str_command="net send "&Str_DomenNetSend&" "&Replace(Str_OnLineMessage,"%Str_BaseSTR%",BDArray(id,4))
                   
               AddLog id,"Отправка сообщения в домен:"
               AddLog id,""&str_command
               
               WshShell.Run str_command
           End If
           
   End Select
   
   AddLog id,"Состояние БД:"&CStr(BDArray(id,2))
   
End Sub
8 Lama12
 
25.05.12
14:33
(5) Не в синтакс-помошнике ищи, а во встроенной справке (это разные вещи).
9 fisher
 
25.05.12
16:51
(5) СП - Средства интеграции и администрирования - Менеджер COM соденинений - Администрирование кластера серверов
Читаешь и разбираешься с объектной моделью.
Тебе нужно свойство IInfoBaseInfo.ScheduledJobsDenied