Включение регламентных заданий ИБ 1С для забывчивых администраторов

01.11.19

Разработка - Инструментарий разработчика

Используем скрипт на Powershell, чтобы больше не забывать включать регламентные задания 1С после обновления.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Включение регламентных заданий ИБ 1С для забывчивых администраторов:
.ps1 6,65Kb
7
7 Скачать (1 SM) Купить за 1 850 руб.

Иногда, для обновления информационной базы 1С или ещё каких-то технических работ на сервере, приходится отключать регламентные задания, особенно если эта самая база - что-то вроде 1С:Документооборота.

К сожалению, в консоли администрирования серверов 1С при редактировании параметров ИБ реквизиты "Начало" и "Конец" никак не влияют на активность галки "Блокировка регламентных заданий включена". То есть блокировка с начала сеансов пользователей после выхода текущего времени за границы вышеуказанных реквизитов будет снята (но галочка-то останется), а вот запуск регламентных задании так и не будет разрешён.

 

Редактирование свойств информационной базы в консоли администрирования сервера 1С

Выглядит это так: пользователи уже вошли в базу, пытаются работать, а, например, задачи их не пересылаются, процессы не стартуются, кокос не растёт и крокодил не ловится. Одним словом - катастрофа! На чём я пару раз и погорел, забыв вручную выключить блокировку регламентных заданий.

Вдохновившись статьей "Отключение регламентных заданий в копии базы", я решил поступить ровно наоборот, использовав замечательный инструментарий, который есть в доступности у каждого администратора. Powershell!

Ниже будет приведён код готового скрипта, который проверяет свойства нужной нам базы 1С. Если в ней заблокированы регламентные задания, а время вышло за указанные границы, то через подключение к объекту v83.COMConnector галка снимается, регламентные задания разблокируются.

 

$Server = "sr-1c-docob" #Имя сервера приложений 1С
$CheckIBName = "training_docob" #Имя базы, которую контролируем
$Login = "" #Администратор кластера 1С
$Password = "" #Пароль администратора кластера 1С

$MessageFolder = "\\someserver\import_messages" #Папка, куда выгружаем уведомление о включении РЗ

####################################################################

Function SendTelegramMessage ([STRING]$To, [STRING]$Text) {
    $JSONText = @"
[{
"login": "$To",
"message": "$Text"
}]
"@

    $JSONText | Out-File ("{0}\tgm_regjob_{1}.json" -f $MessageFolder, ($Id = [GUID]::NewGuid()))
}

Function IsEmptyDate([DateTime]$Date) { 
    Return ($Date -eq (New-Object DateTime (100, 1, 1, 0, 0, 0))) 
}

Function CheckDateLimits([DateTime]$From, [DateTime]$To) {
    $NowDate = Get-Date

    If (!(IsEmptyDate($From)) -and !(IsEmptyDate($To)) -and ($NowDate -ge $From) -and ($NowDate -le $To)) { #Обе границы установлены, текущее время в их пределах
        Return $True
    }
    ElseIf (!(IsEmptyDate($From)) -and (IsEmptyDate($To)) -and ($NowDate -ge $From)) { #Граница "С" установлена, текущее время больше
        Return $True
    }
    ElseIf ((IsEmptyDate($From)) -and !(IsEmptyDate($To)) -and ($NowDate -le $To)) { #Граница "По" установлена, текущее время меньше
        Return $True
    }
    Else {
        Return $False
    }
}

Try {
    $v83 = New-Object -ComObject V83.COMConnector #Или V82.COMConnector
}
Catch {
    #Write-Host("Не найден СОМ-объект")
    Break
}

Try {
    $Session = $v83.ConnectAgent($Server)
}
Catch {
    #Write-Host("Не могу подключиться к серверу " + $Server)
    Break
}

$Clusters = $Session.GetClusters()

$WorkingCluster = $Clusters[0]

Try {
    $Session.Authenticate($WorkingCluster, $Login, $Password) #Здесь логин\пароль администратора кластера. Если вы его не забыли добавить. ;-)
}
Catch {
    #Write-Host("Неудачная попытка аутентификации администратора кластера " + $Login)
    Break
}

$WorkingProcess = $Session.GetWorkingProcesses($WorkingCluster)[0]
$ConnectionString = "{0}:{1}" -f $WorkingProcess.HostName, $WorkingProcess.MainPort

$WorkingProcessSession = $v83.ConnectWorkingProcess($ConnectionString)
$WorkingProcessSession.AddAuthentication($Login, $Password)

$CheckIB = $WorkingProcessSession.GetInfoBases() | Where {$_.Name -eq $CheckIBName}

If (($CheckIB) -and ($CheckIB.ScheduledJobsDenied)){ #"Мы нашли эту базу и у нее запрещены регламентные задания!"
    $DateLimits = CheckDateLimits -From $CheckIB.DeniedFrom -To $CheckIB.DeniedTo #Проверяем границы начала и конца блокировки

    Write-Host("DateLimits $DateLimits")

    #Write-Host("Lets do it! From {0} To {1} is ok? {2}" -f $CheckIB.DeniedFrom, $CheckIB.DeniedTo, !$DateLimits)
    If (!$DateLimits) {
        $CheckIB.ScheduledJobsDenied = $False
        $WorkingProcessSession.UpdateInfoBase($CheckIB)
        
        $MessageText = "Включены регламентные задания для базы <code>{0}</code> на сервере <code>{1}</code>" -f $CheckIB.Name, $WorkingProcess.HostName
        SendTelegramMessage -To "Адресат_Сообщения" -Text $MessageText
    } 
    else {
        #Write-Host("В базе {0} установлены действующие на текущий момент границы начала и конца блокировки" -f $CheckIBName)
    }
}
Else {
   #Write-Host("Не найдено базы {0} или регламентные задания в ней не остановлены" -f $CheckIBName)
}

В начале скрипта не забываем инициализировать переменные, указав имя сервера, базы, логин и пароль администратора кластера 1С (если у вас он заведён). Если версия платформы 1С - 8.2, тогда меняем имя объекта. В тексте скрипта оставлены закомментированные процедуры вывода информационных сообщений на случай, если захотите поиграться в консоли, знакомясь с работой скрипта. В конце скрипта присутствует вызов функции SendTelegramMessage(), генерирующей файл с уведомлением об включении регламентных заданий - её можно смело удалить. Ну или переделать под себя.

Настроив скрипт, можно добавить его выполнение на сервере приложений (есть и другие варианты) в "Планировщик задач" c расписанием на выполнение каждые 5 минут.

Напоминаю, что запускать в качестве программы мы будем "powershell.exe".

Рабочие аргументы:

-executionpolicy Unrestricted -WindowStyle Hidden -file "Путь_к_файлу_со_скриптом.ps1"

Итак, ещё раз, что мы получаем в итоге? Установив вручную в консоли администрирования блокировку начала сеансов пользователей и блокировку регламентных заданий, время их начала и конца, мы можем смело заниматься своими делами, забыв о том, что где-то надо будет снять галочку. Регулярно запускаемый планировщиком задач скрипт проверит время и по выходу из установленных границ отключит блокировку у регламентных заданий.

Прикреплённый файл полностью соответствует листингу скрипта.

Powershell администрирование блокировка регламентные задания скрипт

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159364    872    399    

861

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7759    55    22    

66

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23422    68    45    

117

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10409    36    20    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 19980 руб.

06.10.2023    15389    35    7    

70

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    187968    1138    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17298    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7693    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 01.11.19 16:42 Сейчас в теме
неплохо, правда после обновления боевой конфигурации практически в каждой типовой запускается обработка обновления которая будет висеть "вечно" с табличкой "не завершен переход на новую версию" если не сняли галку блока регл. заданий.
после обновления первый запуск должен выполнить админ.

так что даже если у админа склероз, то очень быстро его память воостановиться или ее восстановят добрые пользователи с предложением "эээ, ну ты заходи если чо".

так же сомнительно вставлять в скрипт админские пароли в открытом виде.
конечно, сам скрип будет в надежном месте и т.д., а если нет, а если кто-то увидит?
2. semagin@gmail.com 47 01.11.19 18:53 Сейчас в теме
(1)у нас почти ежедневные доработки конфигураций. И никаких новых релизов.

Про надежность скрипта и пароль: пользуйтесть виндоуз-аутентификацией. И не разбрасывайтесть доступом к серверу и скриптам.
3. mikukrnet 182 15.05.20 14:15 Сейчас в теме
Так блокировка пользователей блокирует и регламенты. В чем прикол-то?
semagin@gmail.com; +1 Ответить
Оставьте свое сообщение