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

01.11.19

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

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

Скачать файлы

Наименование Файл Версия Размер
Включение регламентных заданий ИБ 1С для забывчивых администраторов:
.ps1 6,65Kb
6
.ps1 6,65Kb 6 Скачать

Иногда, для обновления информационной базы 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! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 10400 руб.

02.09.2020    122233    673    389    

715

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7313    22    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3560    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177768    1074    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99360    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18124    6    8    

40

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28114    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23605    15    15    

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

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

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

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