#0
by udarnic77
Приветствую уважаемый форум! Задача - еженочная выгрузка аз в DT. Есть скрипт на VBS, который успешно задачу выполняет на различных базах (в том числе полностью самописных программистом). Но, с некоторых пор (подозрение на обновление платформы до версии 8.3.8.1747) некоторые клиенты остаются подключенными и, соответственно, выгрузка не выполняется из-за невозможности установить монопольное соединение. Если выкинуть оставшихся клиентов руками в консоли администрирования сервера - скрипт отрабатывает. Тело скрипта такое: [code] BasesList = "c:scriptackupases_to_backup.txt" 'Cписок баз, одна строка - одна база ' Например: ' base1 If Len(Trim(iString)) <> 0 Then Call ArcBackups(iString) Loop While Not Fstring.AtEndOfStream Fstring.Close Sub ArcBackups(BaseName) 'имя пользователя базы 1С:Предприятия UserName = "root" 'пароль пользователя базы 1С:Предприятия UserPass = "password" 'имя сервера 1С:Предприятия ServerName = "srv2" 'имя базы 1С:Предприятия к которой подключаемся BaseName получаем как аргумент ' Код доступа к базе, нужен для доступа к ЗАБЛОКИРОВАННОЙ для новых подключений базе LockPermissionCode = "123456" ' BckpDir - папка назначения, куда будем складывать выгрузки BckpDir = "\BackupBackup_1CDT"& BaseName &"" ' LogDir - папка куда будет писаться лог выгрузки и обновления LogDir = "\BackupBackup_1CDT"& BaseName &"log" LockMessageText = "БАЗА ЗАКРЫТА НА СОЗДАНИЕ РЕЗЕРВНОЙ КОПИИ И ОБНОВЛЕНИЕ." Dim j 'Перебираем все процессы в кластере For j = LBound(Processes) To UBound(Processes) Set WorkingProcess = AgentConnection.GetWorkingProcesses(Cluster)(j) 'Проверяем на наличие остановленых процессов For Each InfoBase In InfoBases ' Ищем нужную базу If UCase(InfoBase.Name) = UCase(BaseName) Then ' Устанавливаем запрет на подключение новых соединений ' Запрет действует 15 минут, если скрипт не отработает нормально Next ''''''''''''''''''''''''''''' 'проверяем существование папки для бэкапа и, если ее нет, создаем If Not objFSO.FolderExists(strDirectory) Then End If ' проверяем существование папки для лога и, если ее нет, создаем If Not obj2FSO.FolderExists(str2Directory) Then 'Задаем формат имени файла бэкапа База_Дата_Час_Минута_ИмяСервера FileName = BaseName & "_" & DateValue(date) & "_" & Hour(Now) & "_" & Minute(Now) & "_" & ServerName ' запуск выгрузки с ожиданием ее завершения oWshShell.Run strComm, 0, true ' запуск обновления с ожиданием его завершения ' oWshShell.Run strComm2, 0, true ' Отключаем блокировку базы InfoBases = WorkingProcessConnection.GetInfoBases For Each InfoBase In InfoBases ' Ищем нужную базу If UCase(InfoBase.Name) = UCase(BaseName) Then ' Отключаем запрет на подключение новых соединений [/code]
#3
by Armando
вот кусок моего скрипта For Each SessionInfo in AgentConnection.GetInfoBaseSessions(ClusterInfo, InfoBaseShort) If Not SessionInfo.AppID = "COMConsole" Then
#6
by udarnic77
Спасибо. Мой скрипт более "линейный", а знаний в VBS пока не хватает, чтобы вписать в свой скрипт разрыв всех сеансов к определенной базе. Буду очень благодарен если кто-то поможет вписать...
#7
by Armando
Скорее всего этот скрипт писался для старых версий платформы, когда еще не было понятия Сеанс. Тут не просто вписать, а переписать скрипт надо с сохранением логики. В твоем скрипте идет перебор соединений в каждом рабочем процессе, с разрывом соединения. А надо перебирать сеансы кластера и удалять подходщие по условию.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- При Записи вновь созданного элемента выкидывает из базы
- Выкидывает всех пользователей из 1с
- Постоянно выкидывает из 1С
- Запрос всех строк номенклатуры из всех табличных частей всех документов
- При загрузке данных типовой обработкой виснет и выкидывает. Почему?
- Выкидывает всех пользователей с сервера 1с
В этой группе 1С
- Ошибка при инициализации компоненты лицензирования! УАТ+БП3
- Запрос с условием НЕ
- ЕГАИС Расход Штрих-м Торговое предприятие 5
- Разная себестоимость по упр. и регл. учету
- БП 3.0 Закрытие 21 счета
- Ошибка инициализации модуля в самописном документе
- В обработчике печати не был сформирован табличный документ
- Обновление измененной конфигурации 1С УПП 1.3
- Обмен Розница 1.0.19.16 и УТ 10.3.37.5
- Веб-сервис, входящий xdto преобразовать в xml
- Использование категорий в СКД
- v7: v7 Подключение к базе по OLE/COM из регл. задания Windows (планировщик задач)
- ERP. Восстановление стоимости спецодежды при возврате на склад
- Вызов серверного метода общего модуля из формы справочника
- Вопросы по приему по договору подряда в ЗУП 2.5
- Порекомендуйте провайдера для ЭДО.
- ЗУП Больничный после увольнения НДФЛ
- Очистка регистра сведений за период
- Нумерация столбцов в макете обработки, исправить
- УТ11 - Запрет изменять существующего контрагента