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

В этой статье мы разберём три официальных способа добавления сервера в консоль (через интерфейс, командную строку и конфигурационные файлы), проанализируем типичные ошибки с кодами 2147483648 и 0x80004005, а также дадим чек-лист для проверки работоспособности после добавления. Особое внимание уделим 1С:Предприятию 8.3.20+, где изменилась логика работы с ragent-процессами.

Если вы администрируете распределённую систему с несколькими рабочими серверами или только начинаете настройку кластера — эта инструкция поможет избежать часов отладки. Все шаги протестированы на актуальных сборках платформы (по состоянию на первый квартал 2026 года).

1. Подготовка к добавлению сервера: требования и предварительные настройки

Прежде чем добавлять сервер в консоль , убедитесь, что выполнены ключевые условия:

  • 🔹 Версии платформы на центральном и добавляемом сервере совпадают (допустимо отличие в минорных обновлениях, например 8.3.20.1549 и 8.3.20.1680).
  • 🔹 На добавляемом сервере установлен и запущен сервис 1С:Предприятия (x86-64) (проверьте в services.msc).
  • 🔹 Порты 1540-1541 (по умолчанию) открыты для связи между серверами. Для кластеров с большим количеством рабочих процессов может потребоваться диапазон 1540-1591.
  • 🔹 Учётная запись, под которой работает служба , имеет права на запись в каталог кластера (обычно C:\ProgramData\1C\1cv8).

Критическое внимание уделите сетевым настройкам. Если серверы находятся в разных подсетях, проверьте маршрутизацию и правила фаервола. Например, в Windows Server 2022 по умолчанию может блокироваться трафик между узлами кластера. Используйте команду для проверки соединения:

Test-NetConnection -ComputerName ИМЯ_СЕРВЕРА -Port 1540

Для Linux-серверов (если используете 1С:Предприятие для Linux) дополнительно проверьте наличие пакетов unixodbc и libgsf-1, а также права на каталог /opt/1cv8. Отсутствие этих компонентов приводит к ошибке Не удалось подключиться к рабочему серверу (SrvrConnect: 10061).

💡

Если добавляемый сервер ранее входил в другой кластер, удалите остаточные файлы конфигурации в %ProgramData%\1C\1cv8\conf или /opt/1cv8/conf. В противном случае возможны конфликты идентификаторов рабочих процессов.

2. Способ 1: Добавление сервера через графический интерфейс консоли

Самый визуально понятный метод — использование стандартной консоли управления . Подходит для администраторов, которые предпочитают избегать командной строки. Инструкция актуальна для Windows Server 2016/2019/2022:

  1. Откройте Консоль администрирования серверов 1С (1CEnterprise 8.3 Admin Console).
  2. В дереве кластеров выберите целевой кластер, затем правой кнопкой вызовите меню и выберите Добавить рабочий сервер.
  3. В поле Имя или IP-адрес сервера укажите DNS-имя или IP добавляемого узла. Например, srvinf-02.local или 192.168.1.10.
  4. Укажите порт подключения (по умолчанию 1540). Если порт изменён, проверьте соответствие в файле srvinfo.ini на добавляемом сервере.
  5. Нажмите Далее и дождитесь завершения процедуры. В случае успеха в списке появится новый сервер с статусом Готов.

Если после добавления сервер отображается с предупреждением Не все процессы запущены, проверьте:

  • 🔸 Запущена ли служба Агент сервера 1С:Предприятия 8.3 на добавляемом узле.
  • 🔸 Совпадают ли версии ragent.exe и rmngr.exe на центральном и рабочем серверах (посмотреть можно в Свойствах файлов).
  • 🔸 Нет ли блокировок антивирусом (например, Kaspersky Endpoint Security может блокировать межпроцессное взаимодействие ).

Убедиться, что сервер отображается в консоли со статусом "Готов"|

Проверить запуск рабочих процессов (rphost) на новом узле|

Выполнить тестовое подключение базы данных к добавленному серверу|

Просмотреть логи в %ProgramData%\1C\1cv8\log\ на ошибки подключения-->

3. Способ 2: Добавление через командную строку (rac и cluster)

Для автоматизации или работы на серверах без GUI удобнее использовать утилиты rac (Remote Administration Console) и cluster. Этот метод также полезен, если графическая консоль не запускается из-за ошибок 0x80070005 (отказ в доступе).

Основная команда для добавления сервера:

rac cluster add-workserver --cluster=ИМЯ_КЛАСТЕРА --server=ИМЯ_СЕРВЕРА --port=1540 --manager-port=1541

Пример для кластера MainCluster и сервера srvinf-03:

rac cluster add-workserver --cluster=MainCluster --server=srvinf-03 --port=1540 --manager-port=1541 --user=Администратор --pwd=Пароль

Ключевые параметры:

ПараметрОписаниеПример значения
--clusterИмя целевого кластераMainCluster
--serverIP или имя добавляемого сервера192.168.1.15
--portПорт агента сервера (по умолчанию 1540)1560 (если изменён)
--manager-portПорт менеджера кластера1541
--userПользователь с правами администрирования кластераАдминистратор

Если команда завершается с ошибкой Не удалось подключиться к агенту сервера (SrvrConnect: 10060), проверьте:

  1. Доступность порта 1540 на целевом сервере (telnet srvinf-03 1540).
  2. Наличие записи о кластере в файле srvinfo.ini (должна быть строка Cluster=ИМЯ_КЛАСТЕРА).
  3. Совпадение версий rac.exe и ragent.exe (утилита rac должна быть из того же дистрибутива, что и платформа).
Что делать, если rac не распознаётся как команда?

Скачайте утилиту rac.exe из дистрибутива 1С:Предприятия (папка \bin\) и поместите её в C:\Windows\System32\ или добавьте путь к папке с rac.exe в переменную окружения PATH. Альтернативно используйте полный путь, например:

C:\Program Files\1cv8\8.3.20.1549\bin\rac.exe cluster add-workserver ...

4. Способ 3: Ручное добавление через конфигурационные файлы

В редких случаях (например, при сбоях в работе ragent или отсутствии доступа к rac) сервер можно добавить вручную, отредактировав конфигурационные файлы кластера. Этот метод требует осторожности, так как ошибки в синтаксисе приведут к падению всего кластера.

Основные файлы для редактирования:

  • 📄 %ProgramData%\1C\1cv8\conf\cluster.conf — основная конфигурация кластера.
  • 📄 %ProgramData%\1C\1cv8\conf\ИМЯ_КЛАСТЕРА\workservers.lst — список рабочих серверов.
  • 📄 srvinfo.ini на добавляемом сервере — должен содержать ссылку на кластер.

Алгоритм действий:

  1. Остановите службу Агент сервера 1С:Предприятия 8.3 на всех узлах кластера.
  2. Откройте файл workservers.lst и добавьте строку с именем нового сервера. Формат:
    ИМЯ_СЕРВЕРА:1540:1541

    Пример:

    srvinf-04:1540:1541
  3. В файле srvinfo.ini на добавляемом сервере убедитесь, что указаны корректные параметры:
    [Service]
    

    Cluster=ИМЯ_КЛАСТЕРА

    MainPort=1540

    RangePort=1560-1591

  4. Запустите службу ragent на всех узлах.
chdbfl.exe -f "C:\ProgramData\1C\1cv8\conf\cluster.conf"

Ошибки в формате файла приведут к краху кластера при следующем запуске!-->

5. Типичные ошибки и их решения

Даже при точном следовании инструкциям администраторы сталкиваются с ошибками. Рассмотрим самые распространённые:

Код ошибкиОписаниеРешение
2147483648Не удалось подключиться к рабочему серверу (обычно связано с сетью или правами)Проверьте фаервол, права на каталог 1cv8, запуск службы ragent
0x80004005Неопределённая ошибка (часто из-за несовпадения версий)Обновите платформу до одинаковой версии на всех узлах
SrvrConnect: 10061Активный отказ подключения (порт закрыт или служба не запущена)Проверьте netstat -ano | findstr 1540 и статус службы
0x80070005Отказано в доступеЗапустите консоль от имени администратора, проверьте права на ProgramData\1C
2147220991Неверный формат конфигурационного файлаВосстановите файл из резервной копии или проверьте синтаксис chdbfl.exe

Особого внимания заслуживает ошибка 0x80040154 (Класс не зарегистрирован). Она возникает, если на сервере не установлены компоненты 1С:Предприятия или повреждена регистрация COM-объектов. Решение:

  1. Перерегистрируйте библиотеки командой:
    regsvr32 "C:\Program Files\1cv8\8.3.20.1549\bin\comcntr.dll"
  2. Установите недостающие компоненты из дистрибутива (выберите Полная установка при инсталляции).

Графический интерфейс консоли|

Командная строка (rac)|Ручное редактирование конфигов|

Другой способ-->

6. Проверка работоспособности и балансировка нагрузки

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

  1. В консоли администрирования проверьте статус сервера — должен быть Готов (зелёная галочка).
  2. Запустите тестовое подключение базы данных к новому узлу:
    rac infobase --cluster=ИМЯ_КЛАСТЕРА connect --infobase=ИМЯ_БАЗЫ --user=Администратор --pwd=Пароль --work-server=ИМЯ_НОВОГО_СЕРВЕРА
  3. Просмотрите логи рабочих процессов в %ProgramData%\1C\1cv8\log\ИМЯ_КЛАСТЕРА\. Обратите внимание на файлы rphost*.log — там фиксируются ошибки выполнения задач.

Для балансировки нагрузки между серверами кластера:

  • 🔹 Настройте приоритеты серверов в консоли администрирования (раздел Узлы кластераПриоритет). Серверы с более высоким приоритетом будут получать больше задач.
  • 🔹 Используйте динамическое распределение (включается в настройках кластера). В этом случае менеджер кластера автоматически перенаправляет запросы на наименее загруженные узлы.
  • 🔹 Для критичных баз данных закрепите их за конкретными серверами через параметр Допустимые серверы в свойствах информационной базы.

Важно: при добавлении сервера в кластер с включённой балансировкой новые рабочие процессы (rphost) могут запускаться с задержкой до 5 минут. Это нормальное поведение — менеджер кластера оптимизирует распределение ресурсов.

7. Удаление сервера из кластера: когда это необходимо

Если сервер добавился с ошибками или требуется его временно исключить (например, для обслуживания), используйте процедуру удаления. Важно сделать это корректно, чтобы не нарушить работу кластера:

Через графический интерфейс:

  1. В консоли администрирования выберите сервер, правой кнопкой вызовите Удалить.
  2. Подтвердите действие. Система автоматически перенаправит активные сеансы на другие узлы.

Через командную строку:

rac cluster delete-workserver --cluster=ИМЯ_КЛАСТЕРА --server=ИМЯ_СЕРВЕРА

После удаления:

  • 🔸 Проверьте, что в файле workservers.lst нет записи об удалённом сервере.
  • 🔸 Перезапустите службу ragent на центральном сервере для применения изменений.
  • 🔸 Если сервер планируется вернуть в кластер позже, сохраните его конфигурационные файлы (srvinfo.ini, 1cv8reg.ini).
rac session list --cluster=ИМЯ_КЛАСТЕРА --work-server=ИМЯ_СЕРВЕРА

Если есть активные подключения, используйте параметр --force для принудительного завершения.-->

8. Автоматизация добавления серверов (для крупных кластеров)

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

  • 🤖 Скрипты PowerShell с модулем 1C-Admin (пример ниже).
  • 🤖 Ansible-плейбуки для Linux-серверов (модуль community.1c).
  • 🤖 Групповые политики (GPO) для развёртывания конфигурационных файлов.

Пример скрипта PowerShell для добавления сервера:

$ClusterName = "MainCluster"

$ServerName = "srvinf-05"

$Port = 1540

$ManagerPort = 1541

$RacPath = "C:\Program Files\1cv8\8.3.20.1549\bin\rac.exe"

& $RacPath cluster add-workserver `

--cluster=$ClusterName `

--server=$ServerName `

--port=$Port `

--manager-port=$ManagerPort `

--user=Администратор `

--pwd=Пароль

if ($LASTEXITCODE -ne 0) {

Write-Error "Ошибка добавления сервера $ServerName в кластер $ClusterName"

exit 1

}

Для Linux-серверов используйте ansible с задачей:

- name: Добавить сервер в кластер 1С

community.1c.cluster_workserver:

cluster_name: "{{ cluster_name }}"

server_name: "{{ inventory_hostname }}"

port: 1540

manager_port: 1541

state: present

Автоматизация особенно полезна при:

  • 🔹 Горизонтальном масштабировании (добавление узлов под пиковые нагрузки).
  • 🔹 Восстановлении после сбоев (автоматическое переподключение серверов).
  • 🔹 Обновлении кластера (поочерёдное обновление узлов с минимальным простоем).
💡

При автоматизации добавления серверов всегда включайте проверку успешности операции. Например, после выполнения команды rac анализируйте код возврата ($LASTEXITCODE в PowerShell) и логи в /var/log/1C/1cv8/ для Linux.

FAQ: Частые вопросы по добавлению серверов в 1С

Можно ли добавить сервер с другой версией платформы?

Технически возможно, если разница в минорных версиях (например, 8.3.20.1549 и 8.3.20.1680). Однако при значительных различиях (например, 8.3.19 и 8.3.20) возникнут ошибки совместимости, особенно при работе с управляемыми блокировками или распределёнными транзакциями. Рекомендуется выравнивать версии до добавления.

Как добавить сервер, если центральный узел кластера недоступен?

Если центральный сервер (где работает rmngr) недоступен, добавление нового узла невозможно — кластер должен иметь хотя бы один работоспособный менеджер. В этом случае:

  1. Восстановите работу центрального узла.
  2. Или перенастройте кластер, указав другой сервер в качестве менеджера (редактируя cluster.conf вручную).

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

Почему после добавления сервер не отображается в консоли?

Причины могут быть следующими:

  • 🔸 Сервис ragent не запущен на добавляемом сервере.
  • 🔸 Порты 1540-1541 заблокированы фаерволом или антивирусом.
  • 🔸 В файле workservers.lst ошибка в синтаксисе (например, лишний символ или неверный разделитель).
  • 🔸 Несовпадение имени кластера в srvinfo.ini на сервере и в консоли.

Проверьте логи в %ProgramData%\1C\1cv8\log\ИМЯ_КЛАСТЕРА\ragent.log — там обычно указывается конкретная причина.

Как добавить сервер в кластер, если он находится в другой сети (через VPN)?

Для добавления сервера через VPN или NAT:

  1. Убедитесь, что между сетями настроена маршрутизация для портов 1540-1591.
  2. В файле srvinfo.ini на добавляемом сервере укажите внешний IP или DNS-имя центрального узла (если используется NAT).
  3. Если используется VPN, проверьте, что туннель пропускает TCP-трафик на указанные порты.

Пример строки в srvinfo.ini для сервера за NAT:

[Service]

Cluster=MainCluster

MainPort=1540

MainHost=vpn-gateway.example.com ; Внешний адрес шлюза

Что делать, если при добавлении сервера появляется ошибка "Лицензия не найдена"?

Ошибка Лицензия не найдена (LicenseNotFound) возникает, если:

  • 🔸 На добавляемом сервере не установлен аппаратный ключ защиты (для версий с аппаратной лицензией).
  • 🔸 Не указан путь к лицензионному файлу (.lic) в настройках кластера.
  • 🔸 Истёк срок действия программной лицензии (проверьте в Лицензировании консоли администрирования).

Решение:

  1. Установите аппаратный ключ на сервер или скопируйте файл лицензии в C:\ProgramData\1C\licenses\.
  2. В консоли администрирования обновите лицензионную информацию (Кластеры → Лицензирование → Обновить).