{"id":19762960,"url":"https://github.com/arkuznetsov/irac","last_synced_at":"2026-02-18T00:03:44.878Z","repository":{"id":38359525,"uuid":"120579401","full_name":"arkuznetsov/irac","owner":"arkuznetsov","description":"Интерфейсная библиотека (oscript) к утилите администрирования кластера серверов 1С (rac).","archived":false,"fork":false,"pushed_at":"2025-02-12T18:01:31.000Z","size":1456,"stargazers_count":78,"open_issues_count":9,"forks_count":37,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-10-11T12:32:36.152Z","etag":null,"topics":["1c","1c-enterprise","bsl","hacktoberfest","onescript","oscript","rac","ras"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arkuznetsov.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-02-07T07:27:39.000Z","updated_at":"2025-03-07T14:17:06.000Z","dependencies_parsed_at":"2023-01-29T20:46:04.490Z","dependency_job_id":"f3e28778-8e40-40d3-b510-df3a0af42cd8","html_url":"https://github.com/arkuznetsov/irac","commit_stats":null,"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/arkuznetsov/irac","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Firac","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Firac/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Firac/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Firac/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkuznetsov","download_url":"https://codeload.github.com/arkuznetsov/irac/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkuznetsov%2Firac/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29563302,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T21:50:49.831Z","status":"ssl_error","status_checked_at":"2026-02-17T21:46:15.313Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["1c","1c-enterprise","bsl","hacktoberfest","onescript","oscript","rac","ras"],"created_at":"2024-11-12T04:07:32.301Z","updated_at":"2026-02-18T00:03:44.862Z","avatar_url":"https://github.com/arkuznetsov.png","language":"1C Enterprise","funding_links":[],"categories":["Репозитории"],"sub_categories":["Репозитории сообщества"],"readme":"[![GitHub release](https://img.shields.io/github/release/ArKuznetsov/irac.svg?style=flat-square)](https://github.com/ArKuznetsov/irac/releases)\n[![GitHub license](https://img.shields.io/github/license/ArKuznetsov/irac.svg?style=flat-square)](https://github.com/ArKuznetsov/irac/blob/develop/LICENSE)\n[![GitHub Releases](https://img.shields.io/github/downloads/ArKuznetsov/irac/latest/total?style=flat-square)](https://github.com/ArKuznetsov/irac/releases)\n[![GitHub All Releases](https://img.shields.io/github/downloads/ArKuznetsov/irac/total?style=flat-square)](https://github.com/ArKuznetsov/irac/releases)\n[![Build Status](https://img.shields.io/github/workflow/status/ArKuznetsov/irac/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%20%D0%BA%D0%B0%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%B0)](https://github.com/arkuznetsov/irac/actions/)\n[![Quality Gate](https://open.checkbsl.org/api/project_badges/measure?project=irac\u0026metric=alert_status)](https://open.checkbsl.org/dashboard/index/irac)\n[![Coverage](https://open.checkbsl.org/api/project_badges/measure?project=irac\u0026metric=coverage)](https://open.checkbsl.org/dashboard/index/irac)\n[![Tech debt](https://open.checkbsl.org/api/project_badges/measure?project=irac\u0026metric=sqale_index)](https://open.checkbsl.org/dashboard/index/irac)\n\n\u003ca href=\"https://checkbsl.org\"\u003e\u003cimg 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\"/\u003e\u003c/a\u003e\n\n# Библиотека управления кластером 1С\n\n## Назначение\n\nБиблиотека (oscript) irac предоставляет интерфейс управления кластером серверов 1С:Предприятие 8 с использованием утилиты администрирования кластера (RAC).\n\n## Принцип работы\n\nБиблиотека подключается, как отдельный класс и используется для вызова команд утилиты RAC для взаимодействия с одним экземпляром сервера администрирования кластера 1С.\n\n## Используемая кодировка\n\nВ некоторых случаях консольная утилита RAC может выводить результат в некорректной кодировке.\n\nДля указания кодировки можно использовать переменную среды **RAC_ENCODING**. Возможные значения _OEM_, _ANSI_, _UTF8_. По умолчанию используется кодировка **UTF8**.\n\nВ известных случаях для **Windows** проблему устраняет установка кодировки в значение **OEM**.\n\n### Пример получения списка кластеров, параметров серверов и информационных баз\n\n```bsl\n#Использовать irac\nАдмин = Новый Структура();\nАдмин.Вставить(\"Администратор\", \"admin\");\nАдмин.Вставить(\"Пароль\", \"P@$$w0rd\");\n\nАдминка = Новый УправлениеКластером1С(\"8.3\", \"localhost:1545\", Админ);\n\nКластеры = Админка.Кластеры();\n\n// Обходим список кластеров\nДля Каждого Кластер Из Кластеры.Список() Цикл\n    Сообщить(Кластер.Получить(\"Имя\"));\nКонецЦикла;\n\n// Кластер.УстановитьАдминистратора(\"\u003cadmin\u003e\", \"\u003cpwd\u003e\"); // - указывается если задан администратор кластера\n\nСерверы = Кластер.Серверы();\n\n// Обходим список серверов\nДля Каждого Сервер Из Серверы.Список() Цикл\n\n    Сообщить(Сервер.Имя() + \" (\" + Сервер.АдресСервера() + \":\" + Сервер.ПортСервера() + \")\");\n\n    Для Каждого ТекАтрибут Из Серверы.ПараметрыОбъекта().ОписаниеСвойств() Цикл\n        Сообщить(ТекАтрибут.Ключ + \" : \" + Сервер.Получить(ТекАтрибут.Значение.Имя));\n    КонецЦикла;\n\nКонецЦикла;\n\nИБ = Кластер.ИнформационныеБазы();\n\nСообщить(\"Всего ИБ: \" + ИБ.Список().Количество());\n\n// Обходим список информационных баз\nДля Каждого ТекИБ Из ИБ.Список() Цикл\n\n    Сообщить(ТекИБ.Имя() + \" (\" + ?(ТекИБ.ПолноеОписание(), \"Полное\", \"Сокращенное\") + \" \" + ТекИБ.Описание() + \")\");\n\n    Для Каждого ТекАтрибут Из ИБ.ПараметрыОбъекта().ОписаниеСвойств() Цикл\n        Сообщить(ТекАтрибут.Ключ + \" : \" + ТекИБ.Получить(ТекАтрибут.Значение.Имя));\n    КонецЦикла;\n\nКонецЦикла;\n\n```\n\n### Пример блокировки/разблокировки сеансов в информационной базе\n\n```bsl\n\n#Использовать irac\n\nАдмин = Новый Структура(\"Администратор, Пароль\", \"agentAdmin\", \"P@$$w0rd\");\nУправление = Новый УправлениеКластером1С(\"8.3\", \"localhost:1545\", Админ);\n\nКластер = Управление.Кластеры().Список()[0];\nКластер.УстановитьАдминистратора(\"clusterAdmin\", \"P@$$w0rd\");\n\n// Получение ИБ по имени\nИБ = Кластер.ИнформационныеБазы().Получить(\"MyAwesomeDatabase\");\nИБ.УстановитьАдминистратора(\"Администратор\", \"P@$$w0rd\");\n\n// Установка блокировки начала сеансов с базой\nПараметрыИБ = Новый Структура();\nПараметрыИБ.Вставить(\"НачалоБлокировкиСеансов\"   , Дата(20010101));\nПараметрыИБ.Вставить(\"ОкончаниеБлокировкиСеансов\", Дата(20991231));\nПараметрыИБ.Вставить(\"СообщениеБлокировкиСеансов\", \"База заблокирована до особых распоряжений\");\nПараметрыИБ.Вставить(\"КодРазрешения\"             , \"SuperSecretKey\");\nПараметрыИБ.Вставить(\"БлокировкаСеансовВключена\" , Перечисления.СостоянияВыключателя.Включено);\n\nИБ.Изменить(ПараметрыИБ);\n\n// Снятие блокировки начала сеансов с базой\nПараметрыИБ = Новый Структура();\nПараметрыИБ.Вставить(\"БлокировкаСеансовВключена\" , Перечисления.СостоянияВыключателя.Выключено);\n\nИБ.Изменить(ПараметрыИБ);\n\n```\n\n### Пример блокировки/разблокировки регламентных заданий в информационной базе\n\n```bsl\n\n#Использовать irac\n\nАдмин = Новый Структура(\"Администратор, Пароль\", \"agentAdmin\", \"P@$$w0rd\");\nУправление = Новый УправлениеКластером1С(\"8.3\", \"localhost:1545\", Админ);\n\nКластер.УстановитьАдминистратора(\"clusterAdmin\", \"P@$$w0rd\");\n\n// Получение ИБ по имени\nИБ = Кластер.ИнформационныеБазы().Получить(\"MyAwesomeDatabase\");\nИБ.УстановитьАдминистратора(\"Администратор\", \"P@$$w0rd\");\n\n// Установка блокировки регламентных заданий\nПараметрыИБ = Новый Структура();\nПараметрыИБ.Вставить(\"БлокировкаРегламентныхЗаданийВключена\" , Перечисления.СостоянияВыключателя.Включено);\n\nИБ.Изменить(ПараметрыИБ);\n// Снятие блокировки регламентных заданий\nПараметрыИБ = Новый Структура();\nПараметрыИБ.Вставить(\"БлокировкаРегламентныхЗаданийВключена\" , Перечисления.СостоянияВыключателя.Выключено);\n\nИБ.Изменить(ПараметрыИБ);\n\n```\n## Структура основных объектов\n\nУправлениеКластером1С\n\n```txt\n    |-Администраторы\n    |-Кластеры\n        |-Администраторы\n        |-МенеджерыКластера\n        |-Серверы\n        |   |-ТребованияНазначения\n        |-РабочиеПроцессы\n        |   |-Лицензии\n        |-ИнформационныеБазы\n        |-Сервисы\n        |-Сеансы\n        |-Соединения\n        |   |-Лицензии\n        |-Блокировки\n        |-ПрофилиБезопасности\n        |-СчетчикиПотребленияРесурсов\n```\n\n## Объекты и методы\n\n### УправлениеКластером1С\n\nОсновной класс библиотеки. Предоставляет интерфейс управления серверами 1С.\n\n```bsl\n    Админ = Новый Структура(\"Администратор, Пароль\", \"admin\", \"P@ssw0rd\")\n    УправлениеКластером = Новый УправлениеКластером1С(\"8.3.10\", \"localhost:1545\", Админ);\n```\n\n| Параметры конструктора |||\n|-|-|-|\n| **ВерсияИлиПутьКRAC** |Строка|маска версии 1С или путь к утилите RAC|\n| **СтрокаПодключенияСервиса** |Строка|адрес:порт сервиса агента администрирования (RAS) (по умолчанию: \"localhost:1545\")|\n| **Администратор** |Структура|параметры администратора агента сервера 1С|\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;*- Администратор* | \u0026nbsp;\u0026nbsp;\u0026nbsp;*Строка* | \u0026nbsp;\u0026nbsp;\u0026nbsp;*имя администратора агента сервера 1С*|\n| \u0026nbsp;\u0026nbsp;\u0026nbsp;*- Пароль*        | \u0026nbsp;\u0026nbsp;\u0026nbsp;*Строка* | \u0026nbsp;\u0026nbsp;\u0026nbsp;*пароль администратора агента сервера 1С*|\n\n| Методы |||\n|-|-|-|\n| **СтрокаПодключения()** |Строка|возвращает строку параметров подключения к агенту администрирования (RAS)|\n| **СтрокаАвторизации()** |Строка|возвращает строку параметров авторизации на агенте кластера 1С|\n| **УстановитьАдминистратора(Администратор, Пароль)** ||устанавливает параметры авторизации на агенте кластера 1С|\n| **ИсполнительКоманд()** |ИсполнительКоманд|возвращает текущий объект-исполнитель команд|\n| **УстановитьИсполнительКоманд(НовыйИсполнитель)** ||устанавливает объект-исполнитель команд|\n| **ОписаниеПодключения()** |Строка|возвращает строку описания подключения к серверу администрирования кластера 1С|\n| **Администраторы()** |АдминистраторыАгента|возвращает список администраторов агента кластера 1С|\n| **Кластеры()** |Кластеры|возвращает список кластеров 1С|\n| **ВыполнитьКоманду(ПараметрыКоманды)** |Число|передает команду в объект-исполнитель команды и возвращает код возврата команды|\n| **ВыводКоманды()** |Массив(Соответствие)|возвращает вывод команды из объекта-исполнитель команд|\n\n### ИсполнительКоманд\n\nВспомогательный объект для выполнения команд. Непосредственно вызывает утилиту RAC.\n\n```bsl\n    Админ = Новый Структура(\"Администратор, Пароль\", \"admin\", \"P@ssw0rd\")\n    УправлениеКластером = Новый УправлениеКластером1С(\"8.3.10\", \"localhost:1545\", Админ);\n    УправлениеКластером.УстановитьИсполнительКоманд(Новый ИсполнительКоманд(\"8.3\"));\n```\n\n| Параметры конструктора |||\n|-|-|-|\n| **ВерсияИлиПутьКRAC** |Строка|маска версии 1С или путь к утилите RAC|\n\n| Методы |||\n|-|-|-|\n| **ВерсияRAC()** |Строка|возвращает версию утилиты RAC|\n| **ПутьКRAC()** |Строка|возвращает путь к утилите RAC|\n| **УстановитьПутьКRAC(Путь)** ||устанавливает переданный путь к утилите RAC|\n| **ВыполнитьКоманду(ПараметрыКоманды)** |Массив(Соответствие)|выполняет команду и возвращает код возврата|\n| **ВыводКоманды(РазобратьВывод)** |Строка/Массив(Соответствие)|возвращает вывод команды|\n| **КодВозврата()** |Число|возвращает код возврата выполнения команды|\n\n### Кластеры\n\nОбъект предоставляет доступ к списку кластеров, доступных для администрирования.\n\n```bsl\n    Админ = Новый Структура(\"Администратор, Пароль\", \"admin\", \"P@ssw0rd\")\n    УправлениеКластером = Новый УправлениеКластером1С(\"8.3.10\", \"localhost:1545\", Админ);\n    СписокКластеров = Новый Кластеры(УправлениеКластером);\n```\n\n```bsl\n    Админ = Новый Структура(\"Администратор, Пароль\", \"admin\", \"P@ssw0rd\")\n    УправлениеКластером = Новый УправлениеКластером1С(\"8.3.10\", \"localhost:1545\", Админ);\n    СписокКластеров = УправлениеКластером.Кластеры();\n```\n\n| Параметры конструктора |||\n|-|-|-|\n| **АгентКластера** |УправлениеКластером1С|ссылка на родительский объект агент кластера|\n\n| Методы |||\n|-|-|-|\n| **ОбновитьДанные(РежимОбновления)** ||обновляет список кластеров вызывая утилиту RAC|\n| **ПараметрыОбъекта()** |Соответствие|список параметров объекта кластера|\n| **Список(Отбор, РежимОбновления)** ||возвращает список кластеров, соответствующих отбору|\n| **ВыполнитьКоманду(ПараметрыКоманды)** |Массив(Соответствие)|выполняет команду и возвращает код возврата|\n| **ВыводКоманды(РазобратьВывод)** |Строка/Массив(Соответствие)|возвращает вывод команды|\n| **КодВозврата()** |Число|возвращает код возврата выполнения команды|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkuznetsov%2Firac","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkuznetsov%2Firac","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkuznetsov%2Firac/lists"}