SkillAgentSearch skills...

Irac

Интерфейсная библиотека (oscript) к утилите администрирования кластера серверов 1С (rac).

Install / Use

/learn @arkuznetsov/Irac
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

GitHub release GitHub license GitHub Releases GitHub All Releases Build Status Quality Gate Coverage Tech debt

<a href="https://checkbsl.org"><img alt="Checked by Silver Bulleters SonarQube BSL plugin" src="https://web-files.do.bit-erp.ru/sonar/b_t.png" align="right" style="width:400px"/></a>

Библиотека управления кластером 1С

Назначение

Библиотека (oscript) irac предоставляет интерфейс управления кластером серверов 1С:Предприятие 8 с использованием утилиты администрирования кластера (RAC).

Принцип работы

Библиотека подключается, как отдельный класс и используется для вызова команд утилиты RAC для взаимодействия с одним экземпляром сервера администрирования кластера 1С.

Используемая кодировка

В некоторых случаях консольная утилита RAC может выводить результат в некорректной кодировке.

Для указания кодировки можно использовать переменную среды RAC_ENCODING. Возможные значения OEM, ANSI, UTF8. По умолчанию используется кодировка UTF8.

В известных случаях для Windows проблему устраняет установка кодировки в значение OEM.

Пример получения списка кластеров, параметров серверов и информационных баз

#Использовать irac
Админ = Новый Структура();
Админ.Вставить("Администратор", "admin");
Админ.Вставить("Пароль", "P@$$w0rd");

Админка = Новый УправлениеКластером1С("8.3", "localhost:1545", Админ);

Кластеры = Админка.Кластеры();

// Обходим список кластеров
Для Каждого Кластер Из Кластеры.Список() Цикл
    Сообщить(Кластер.Получить("Имя"));
КонецЦикла;

// Кластер.УстановитьАдминистратора("<admin>", "<pwd>"); // - указывается если задан администратор кластера

Серверы = Кластер.Серверы();

// Обходим список серверов
Для Каждого Сервер Из Серверы.Список() Цикл

    Сообщить(Сервер.Имя() + " (" + Сервер.АдресСервера() + ":" + Сервер.ПортСервера() + ")");

    Для Каждого ТекАтрибут Из Серверы.ПараметрыОбъекта().ОписаниеСвойств() Цикл
        Сообщить(ТекАтрибут.Ключ + " : " + Сервер.Получить(ТекАтрибут.Значение.Имя));
    КонецЦикла;

КонецЦикла;

ИБ = Кластер.ИнформационныеБазы();

Сообщить("Всего ИБ: " + ИБ.Список().Количество());

// Обходим список информационных баз
Для Каждого ТекИБ Из ИБ.Список() Цикл

    Сообщить(ТекИБ.Имя() + " (" + ?(ТекИБ.ПолноеОписание(), "Полное", "Сокращенное") + " " + ТекИБ.Описание() + ")");

    Для Каждого ТекАтрибут Из ИБ.ПараметрыОбъекта().ОписаниеСвойств() Цикл
        Сообщить(ТекАтрибут.Ключ + " : " + ТекИБ.Получить(ТекАтрибут.Значение.Имя));
    КонецЦикла;

КонецЦикла;

Пример блокировки/разблокировки сеансов в информационной базе


#Использовать irac

Админ = Новый Структура("Администратор, Пароль", "agentAdmin", "P@$$w0rd");
Управление = Новый УправлениеКластером1С("8.3", "localhost:1545", Админ);

Кластер = Управление.Кластеры().Список()[0];
Кластер.УстановитьАдминистратора("clusterAdmin", "P@$$w0rd");

// Получение ИБ по имени
ИБ = Кластер.ИнформационныеБазы().Получить("MyAwesomeDatabase");
ИБ.УстановитьАдминистратора("Администратор", "P@$$w0rd");

// Установка блокировки начала сеансов с базой
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("НачалоБлокировкиСеансов"   , Дата(20010101));
ПараметрыИБ.Вставить("ОкончаниеБлокировкиСеансов", Дата(20991231));
ПараметрыИБ.Вставить("СообщениеБлокировкиСеансов", "База заблокирована до особых распоряжений");
ПараметрыИБ.Вставить("КодРазрешения"             , "SuperSecretKey");
ПараметрыИБ.Вставить("БлокировкаСеансовВключена" , Перечисления.СостоянияВыключателя.Включено);

ИБ.Изменить(ПараметрыИБ);

// Снятие блокировки начала сеансов с базой
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("БлокировкаСеансовВключена" , Перечисления.СостоянияВыключателя.Выключено);

ИБ.Изменить(ПараметрыИБ);

Пример блокировки/разблокировки регламентных заданий в информационной базе


#Использовать irac

Админ = Новый Структура("Администратор, Пароль", "agentAdmin", "P@$$w0rd");
Управление = Новый УправлениеКластером1С("8.3", "localhost:1545", Админ);

Кластер.УстановитьАдминистратора("clusterAdmin", "P@$$w0rd");

// Получение ИБ по имени
ИБ = Кластер.ИнформационныеБазы().Получить("MyAwesomeDatabase");
ИБ.УстановитьАдминистратора("Администратор", "P@$$w0rd");

// Установка блокировки регламентных заданий
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("БлокировкаРегламентныхЗаданийВключена" , Перечисления.СостоянияВыключателя.Включено);

ИБ.Изменить(ПараметрыИБ);
// Снятие блокировки регламентных заданий
ПараметрыИБ = Новый Структура();
ПараметрыИБ.Вставить("БлокировкаРегламентныхЗаданийВключена" , Перечисления.СостоянияВыключателя.Выключено);

ИБ.Изменить(ПараметрыИБ);

Структура основных объектов

УправлениеКластером1С

    |-Администраторы
    |-Кластеры
        |-Администраторы
        |-МенеджерыКластера
        |-Серверы
        |   |-ТребованияНазначения
        |-РабочиеПроцессы
        |   |-Лицензии
        |-ИнформационныеБазы
        |-Сервисы
        |-Сеансы
        |-Соединения
        |   |-Лицензии
        |-Блокировки
        |-ПрофилиБезопасности
        |-СчетчикиПотребленияРесурсов

Объекты и методы

УправлениеКластером1С

Основной класс библиотеки. Предоставляет интерфейс управления серверами 1С.

    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);

| Параметры конструктора ||| |-|-|-| | ВерсияИлиПутьКRAC |Строка|маска версии 1С или путь к утилите RAC| | СтрокаПодключенияСервиса |Строка|адрес:порт сервиса агента администрирования (RAS) (по умолчанию: "localhost:1545")| | Администратор |Структура|параметры администратора агента сервера 1С| |    - Администратор |    Строка |    имя администратора агента сервера 1С| |    - Пароль |    Строка |    пароль администратора агента сервера 1С|

| Методы ||| |-|-|-| | СтрокаПодключения() |Строка|возвращает строку параметров подключения к агенту администрирования (RAS)| | СтрокаАвторизации() |Строка|возвращает строку параметров авторизации на агенте кластера 1С| | УстановитьАдминистратора(Администратор, Пароль) ||устанавливает параметры авторизации на агенте кластера 1С| | ИсполнительКоманд() |ИсполнительКоманд|возвращает текущий объект-исполнитель команд| | УстановитьИсполнительКоманд(НовыйИсполнитель) ||устанавливает объект-исполнитель команд| | ОписаниеПодключения() |Строка|возвращает строку описания подключения к серверу администрирования кластера 1С| | Администраторы() |АдминистраторыАгента|возвращает список администраторов агента кластера 1С| | Кластеры() |Кластеры|возвращает список кластеров 1С| | ВыполнитьКоманду(ПараметрыКоманды) |Число|передает команду в объект-исполнитель команды и возвращает код возврата команды| | ВыводКоманды() |Массив(Соответствие)|возвращает вывод команды из объекта-исполнитель команд|

ИсполнительКоманд

Вспомогательный объект для выполнения команд. Непосредственно вызывает утилиту RAC.

    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
    УправлениеКластером.УстановитьИсполнительКоманд(Новый ИсполнительКоманд("8.3"));

| Параметры конструктора ||| |-|-|-| | ВерсияИлиПутьКRAC |Строка|маска версии 1С или путь к утилите RAC|

| Методы ||| |-|-|-| | ВерсияRAC() |Строка|возвращает версию утилиты RAC| | ПутьКRAC() |Строка|возвращает путь к утилите RAC| | УстановитьПутьКRAC(Путь) ||устанавливает переданный путь к утилите RAC| | ВыполнитьКоманду(ПараметрыКоманды) |Массив(Соответствие)|выполняет команду и возвращает код возврата| | ВыводКоманды(РазобратьВывод) |Строка/Массив(Соответствие)|возвращает вывод команды| | КодВозврата() |Число|возвращает код возврата выполнения команды|

Кластеры

Объект предоставляет доступ к списку кластеров, доступных для администрирования.

    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
    СписокКластеров = Новый Кластеры(УправлениеКластером);
    Админ = Новый Структура("Администратор, Пароль", "admin", "P@ssw0rd")
    УправлениеКластером = Новый УправлениеКластером1С("8.3.10", "localhost:1545", Админ);
    СписокКластеров = УправлениеКластером.Кластеры();

| Параметры конструктора ||| |-|-|-| | АгентКластера |УправлениеКластером1С|ссылка на родительский объект агент кластера|

| Методы ||| |-|-|-| | ОбновитьДанные(РежимОбновления) ||обновляет список кластеров вызывая утилиту RAC| | ПараметрыОбъекта() |Соответствие|список параметров объекта кластера| | **Список(Отбор, Реж

Related Skills

View on GitHub
GitHub Stars80
CategoryDevelopment
Updated1mo ago
Forks37

Languages

1C Enterprise

Security Score

100/100

Audited on Feb 8, 2026

No findings