|
|
|
Получение значение блокировки регл заданий | ☑ | ||
|---|---|---|---|---|
|
0
xteam777
12.12.25
✎
11:25
|
Есть функция установки/получения/просмотра галки блокировки регл заданий. Но тут ИнформационнаяБазаТекущая.ScheduledJobsDenied всегда Ложь. Что не так?
Функция ПолучитьСтруктуруСоединенияИнформационнойБазы(Знач СтрокаСоединения = Неопределено) Экспорт Если СтрокаСоединения = Неопределено тогда СтрокаСоединения = СтрокаСоединенияИнформационнойБазы(); КонецЕсли; Результат = Новый Структура; МассивПараметров = СтрРазделить(СтрокаСоединения, ";", Ложь); Для Каждого ПараметрМассива Из МассивПараметров Цикл Поз = СтрНайти(ПараметрМассива, "="); Ключ = ТРег(СокрЛП(Лев(ПараметрМассива,Поз-1))); Значение = СокрЛП(Сред(ПараметрМассива, Поз+1)); Если Лев(Значение,1) = """" И Прав(Значение,1) = """" тогда Значение = Сред(Значение, 2, СтрДлина(Значение)-2); КонецЕсли; Попытка Результат.Вставить(Ключ, Значение); Исключение КонецПопытки; КонецЦикла; Возврат Результат; КонецФункции // Функция - Блокировка регламентных заданий в текущей информационной базе // // Параметры: // УстановитьБлокировку - Булево - Если задан, то производится попытка изменить состояние блокировки регламентных заданий // // Возвращаемое значение: // Булево - состояние блокировки после установки нового состояния. // Неопределено - в случае, если невозможно изменить состояние блокировки регламетных заданий // Функция БлокировкаРегламентныхЗаданий(УстановитьБлокировку = Неопределено) Экспорт АдминистраторИБ = Новый Структура("Имя, Пароль", "Администратор", "ххх"); СтруктураСоединения = ПолучитьСтруктуруСоединенияИнформационнойБазы(); COMСоединитель = Новый COMОбъект("V83.COMConnector"); Попытка СоединениеСАгентомСервера = COMСоединитель.ConnectAgent(СтруктураСоединения.Srvr); Исключение СоединениеСАгентомСервера = Неопределено; КонецПопытки; Если СоединениеСАгентомСервера = Неопределено тогда Возврат Неопределено; КонецЕсли; МассивКластеров = СоединениеСАгентомСервера.GetClusters(); КластерТекущий = Неопределено; Для Каждого Кластер Из МассивКластеров Цикл Если Нрег(Кластер.HostName) = Нрег(СтруктураСоединения.Srvr) тогда КластерТекущий = Кластер; Прервать; КонецЕсли; КонецЦикла; Если КластерТекущий = Неопределено тогда Возврат Неопределено; КонецЕсли; СоединениеСАгентомСервера.Authenticate(КластерТекущий, "", ""); МассивРабочихПроцессов = СоединениеСАгентомСервера.GetWorkingProcesses(КластерТекущий); ИнформационнаяБазаТекущая = Неопределено; Для Каждого РабочийПроцесс Из МассивРабочихПроцессов Цикл СоединениеСРабочимПроцессом = COMСоединитель.ConnectWorkingProcess("tcp://"+РабочийПроцесс.HostName+":"+Формат(РабочийПроцесс.MainPort,"ЧГ=0")); СоединениеСРабочимПроцессом.AddAuthentication(АдминистраторИБ.Имя, АдминистраторИБ.Пароль); МассивИнформационныхБаз = СоединениеСРабочимПроцессом.GetInfoBases(); Для Каждого ИнформационнаяБаза Из МассивИнформационныхБаз Цикл Если Нрег(ИнформационнаяБаза.Name) = Нрег(СтруктураСоединения.Ref) тогда ИнформационнаяБазаТекущая = ИнформационнаяБаза; Прервать; КонецЕсли; КонецЦикла; Если НЕ ИнформационнаяБазаТекущая = Неопределено тогда Прервать; КонецЕсли; КонецЦикла; Если ИнформационнаяБазаТекущая = Неопределено тогда Возврат Неопределено; КонецЕсли; Результат = Неопределено; Если ТипЗнч(УстановитьБлокировку) = Тип("Булево") тогда Попытка ИнформационнаяБазаТекущая.ScheduledJobsDenied = УстановитьБлокировку; СоединениеСРабочимПроцессом.UpdateInfoBase(ИнформационнаяБазаТекущая); Результат = ИнформационнаяБазаТекущая.ScheduledJobsDenied; Исключение КонецПопытки; Иначе Результат = ИнформационнаяБазаТекущая.ScheduledJobsDenied; КонецЕсли; Возврат Результат; КонецФункции |
|||
|
1
Волшебник
12.12.25
✎
11:28
|
Если Вы глотаете ошибки через Исключение КонецПопытки, то сами себе злобный Буратино
|
|||
|
2
xteam777
12.12.25
✎
11:31
|
Убрал попытки. но ошибок не возникает, просто всегда на выходе ложь
|
|||
|
3
Волшебник
12.12.25
✎
11:36
|
(2) Мы, джентльмены, верим друг другу на слово.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |