Развитие платформы 1С:Предприятие принесло долгожданные изменения в архитектуру кластера серверов. Одним из самых значимых нововведений стало появление полноценного программного интерфейса для администрирования непосредственно из встроенного языка. В этой статье мы подробно разберем, как работают эти механизмы, зачем нужен сервер RAS и как автоматизировать управление информационными базами без привязки к операционной системе Windows.
Ранее для управления кластером программным способом разработчикам приходилось использовать COM-соединение с агентом сервера. Это создавало ряд ограничений: привязка к Windows, сложность регистрации библиотек и зависимость от разрядности процессов. С развитием платформы (начиная с версий 8.3.10+) ситуация кардинально изменилась.
Проанализируем основные объекты, которые теперь доступны во встроенном языке для управления кластером:
АдминистрированиеСервера — базовый объект, точка входа для управления.МенеджерАдминистрированияКластера — позволяет выполнять операции внутри конкретного кластера.СоединениеСАгентомСервера — устанавливает связь с центральным сервером.Рассмотрим пример того, как теперь выглядит структура подключения к кластеру для получения списка информационных баз:
АдресАгента = "tcp://server-name:1540";
Администратор = "Admin";
Пароль = "P@ssword";
Соединение = Новый СоединениеСАгентомСервера(АдресАгента);
Соединение.Аутентифицировать(Администратор, Пароль);
Кластеры = Соединение.ПолучитьКластеры();
Для Каждого Кластер Из Кластеры Цикл
Соединение.УстановитьРабочийКластер(Кластер);
ИнформационныеБазы = Соединение.ПолучитьИнформационныеБазы();
// Дальнейшая логика обработки баз
КонецЦикла;
Важно понимать: новый интерфейс позволяет не только считывать данные, но и управлять объектами. Вы можете программно создавать базы, удалять их, завершать сеансы пользователей или блокировать регламентные задания.
Выясним, зачем в этой схеме нужен RAS (Remote Administration Server) и почему его использование стало критически важным. Многие администраторы старой закалки привыкли к консоли MMC, однако она работает только в среде Windows. RAS выступает в роли посредника (шлюза), который принимает команды по протоколу TCP и транслирует их менеджеру кластера.
Разберем преимущества работы через RAS:
RAS поставляется консольная утилита RAC (Remote Administration Client). Она позволяет писать скрипты на Bash или PowerShell для автоматического развертывания баз из хранилища.Проанализируем типичный сценарий использования RAC для блокировки соединений перед обновлением базы:
rac session --cluster=ID_КЛАСТЕРА --infobase=ID_БАЗЫ terminate
rac infobase --cluster=ID_КЛАСТЕРА update --infobase=ID_БАЗЫ --sessions-deny=on --scheduled-jobs-deny=on
Одной из самых частых задач администратора является «выгонка» пользователей для проведения регламентных работ. Рассмотрим подробнее, как это реализуется через встроенный язык. Объект СеансИнформационнойБазы теперь доступен для манипуляций непосредственно в коде.
Посмотрим на пример кода, который завершает все сеансы в определенной базе, кроме текущего:
Менеджер = Соединение.ПолучитьМенеджерАдминистрированияКластера();
Менеджер.УстановитьИнформационнуюБазу(ТекущаяИБ);
Сеансы = Менеджер.ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.НомерСеанса <> ТекущийНомерСеанса Тогда
Менеджер.ЗавершитьСеанс(Сеанс);
КонецЕсли;
КонецЦикла;
Такой подход позволяет встраивать инструменты самообслуживания прямо в пользовательский интерфейс 1С. Например, можно создать обработку «АРМ Администратора», которая будет работать в веб-клиенте на любой ОС.
При использовании новых методов администрирования критически важно уделять внимание безопасности. В системе предусмотрено несколько уровней прав:
При написании кода через АдминистрированиеСервера, вам необходимо передавать учетные данные. Рекомендуется не хранить пароли в открытом виде в коде, а использовать БезопасноеХранилищеДанных или параметры запуска сервера.
Некоторые считают, что такие сложности нужны только крупным компаниям (Enterprise-сектору). Однако это не так. Разберем ситуацию: даже в небольшой фирме с одной базой автоматическое создание резервных копий с предварительной блокировкой соединений — это залог стабильности. Раньше для этого требовались внешние скрипты, теперь это можно реализовать внутри самой 1С через регламентное задание.
Также стоит отметить развитие инструментов мониторинга. Через новые объекты можно в реальном времени получать метрики: объем оперативной памяти, потребляемый каждым сеансом, и интенсивность вызовов СУБД. Это позволяет оперативно вычислять «тяжелые» отчеты, которые тормозят работу всей фирмы.
Подводя итог, можно сказать, что архитектура кластера 1С стала значительно более гибкой. Отказ от ветки 8.4 в пользу внедрения инноваций непосредственно в 8.3 позволил пользователям бесшовно получить доступ к мощным инструментам. Мы рассмотрели только вершину айсберга, но уже сейчас понятно, что программное администрирование — это стандарт современной разработки на платформе 1С.
Используя связку из RAS/RAC и встроенного языка, вы можете построить полностью автоматизированный цикл жизни информационной базы: от создания и загрузки конфигурации до ежедневного мониторинга производительности и управления пользовательскими сессиями.