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

15.02.22

База данных - Журнал регистрации

Под конкретную задачу потребовалось сделать скрипт, который подключается на сервере приложений 1С к предварительно созданным службам RAS, обходит все кластера 1С на этом же сервере и применяет требования назначения функциональности (далее ТНФ).

Синопсис:

Есть два сервера приложений 1С на Windows, на каждом сервере по несколько служб 1С, на каждой службе 1С по одному локальному кластеру; между двумя серверами локальные кластеры собраны в кластеры из двух центральных серверов, уровень отказоустойчивости 0.

Требование:

Поставлена задача, чтобы журнал регистрации писался только на первом сервере приложений. Все просто. И как было бы круто просто настроить на первом сервере ТНФ «Сервис журналов регистрации» с типом «Назначать», а на втором это же требование с типом «Не назначать». Но если первый сервер будет выключен, то это ТНФ убьет всю отказоустойчивость, пользователи не смогут зайти на второй сервер т.к. журнал регистрации на него запрещено писать.

Кажется, опять все просто, на первом сервере для ТНФ «Сервис журналов регистрации» нужно поставить тип «Назначать», приоритет 1; на втором сервере для ТНФ «Сервис журналов регистрации» нужно поставить тип «Назначать», приоритет 0. Тогда посте применения ТНФ журнал регистрации пишется на первый сервер, а если первый сервер выключить, то начинает писаться на второй. НО когда первый сервер будет включен то журнал регистрации так и будет писаться на второй сервер, пока снова не применить ТНФ. Вот этот момент отслеживать и тыкать руками применение не очень-то прикольно, поэтому был создан скрипт на PowerShell, который, по расписанию в планировщике Windows, обходит все кластера 1С на сервере и применяет ТНФ.

При желании скрипт можно легко переделать на применение ТНФ не для всех кластеров сервера, а для конкретного. Так же легко изменить его назначение, заменив код применяющий ТНФ на любые другие команды сервера администрирования(rac.exe –help).

Важно: 1. писал выше, но повторюсь, чтобы скрипт работал, нужно чтобы для каждой службы 1С была создана служба RAS. Как создавать службу RAS, что это такое и как ей пользоваться есть статья //infostart.ru/1c/articles/810752/, но если потребуются пояснения, примеры и т.п. то пишите в комментарии.

2. Скрипт нужно добавить в планировщик.

Всем спасибо!

Скрипт:

cls
&chcp 1251
$srv_name = Get-WmiObject -Class win32_ComputerSystem | select name
$hostras = $srv_name.name
$rasservers = gwmi win32_service -Filter "PathName like '%ras.exe%'" | select PathName #получить все службы RAS
#получить параметры служб RAS с помощью регулярных выражений
$rasmas = $rasservers | select `
    "-",
    @{N="RasPort";E={[regex]::match($_.PathName,"(?<=--port=)\d+").value}},
    @{N="BinaryPath";E={[regex]::match($_.PathName,"^.*ras.exe").value -replace "`"",""}},
    @{N="RacBin";E={([regex]::match($_.PathName,"^.*ras.exe").value -replace "`"","" -replace "ras.exe", "rac.exe")}},
    @{N="HostPort";E={("$hostras`:"+[regex]::match($_.PathName,"(?<=--port=)\d+").value)}},
    #получить id кластеров
    @{N="Clusters";E={[regex]::Matches((&([regex]::match($_.PathName,"^.*ras.exe").value -replace "`"","" -replace "ras.exe", "rac.exe") ('cluster') ("$hostras`:"+[regex]::match($_.PathName,"(?<=--port=)\d+").value) ("list")|out-string),"[0-9a-fA-F]{8}[-][0-9a-fA-F]{4}[-][0-9a-fA-F]{4}[-][0-9a-fA-F]{4}[-][0-9a-fA-F]{12}")}},
    @{N="PathName";E={$_.PathName}}
$rasmas
#обход полученных кластеров ras
foreach($ras in $rasmas){
    foreach($clust in $ras.clusters){
        $adr = ""; $adr = $ras.HostPort
        $cluster = ""; $cluster = "--cluster="+$clust.Value
        $adr
        $cluster
        #применение ТНФ
       &$ras.RacBin 'rule' $adr $cluster 'apply' --full
    }
}

Вступайте в нашу телеграмм-группу Инфостарт

скрипт ТНФ требования назначения функциональности

См. также

Журнал регистрации Системный администратор 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

История изменений реквизитов и табличных частей справочников, документов, независимых регистров сведений, возможность отката изменения, восстановление удаленных объектов, сбор статистики использования базы 1С. Альтернативный журнал регистрации.

22800 руб.

22.02.2018    37424    61    55    

58

Журнал регистрации Системный администратор Программист 1С v8.3 1C:Бухгалтерия Платные (руб)

Журнал регистрации платформы 1С в SQL. Общая база хранения всех журналов. Через com-подключение регламентным заданием периодически догружает журналы регистраций из рабочих баз. Предоставляет настраиваемый доступ к журналам по правам подразделений. Формирует отчеты по пользователям и данным.

12000 руб.

23.05.2014    58156    53    17    

48

Журнал регистрации Программист Россия Бесплатно (free)

В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.

20.11.2024    4859    user1913000    13    

24

Журнал регистрации Тестирование QA Программист Бесплатно (free)

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

21.10.2024    6435    leemuar    8    

24

Инструменты администратора БД Журнал регистрации Системный администратор 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+

1 стартмани

29.12.2023    4015    53    dima_gsv    4    

14

Журнал регистрации Мониторинг Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    3153    9    AlexSTAL    0    

8

Мониторинг Журнал регистрации Технологический журнал Системный администратор Программист Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    7921    13    AlexSTAL    0    

48

Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m)

Внешняя обработка для БСП-конфигураций с простым программным интерфейсом. Предназначена для мониторинга состояния системы. Базово реализована отправка ошибок из журнала регистрации, но можно легко добавить мониторинг других журналов, каких-либо действий пользователей, состояния системы (например закрытие месяца).

3 стартмани

26.09.2023    4705    29    doom2good    16    

15
Для отправки сообщения требуется регистрация/авторизация