Как запустить отладочный сервер 1С на одном компьютере с рабочим сервером

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Лицензионные и архитектурные аспекты

Прежде чем приступать к технической настройке, проанализируем правовую сторону вопроса. Согласно лицензионной политике фирмы «1С», серверная лицензия привязывается к компьютеру (инстансу ОС). Это означает, что если на одном сервере запущено две или три службы ragent.exe, дополнительная лицензия на сервер не требуется. Однако помните, что клиентские лицензии будут расходоваться в обычном режиме для каждого подключения к любой из баз на обоих серверах.

С точки зрения архитектуры, нам не нужно устанавливать платформу во второй раз в другой каталог. Мы можем использовать одни и те же исполняемые файлы (бинарники) для запуска нескольких независимых служб. Главная задача — полностью изолировать их друг от друга на уровне сетевых портов и рабочих данных.

Подготовка: планирование сетевых портов

Стандартный сервер 1С занимает определенный диапазон портов. Чтобы второй сервер запустился успешно, мы должны назначить ему свободные порты, которые не пересекаются с основным сервером. Разберем, какие именно параметры нам нужно изменить:

Настройка каталога данных кластера

Это критически важный момент. По умолчанию сервер 1С хранит настройки кластера, списки баз и сеансов в каталоге %ProgramFiles%\1cv8\srvinfo. Если запустить вторую службу без указания отдельного каталога, она попытается использовать те же файлы, что приведет к неминуемому повреждению данных обоих кластеров.

Проанализируем параметр -d. При создании новой службы мы обязательно должны указать путь к новой пустой папке, например C:\1C_Data\DebugServer. Именно там вторая служба создаст свои собственные конфигурационные файлы 1CV8Reg.lst.

Вариант 1: Регистрация новой службы через командную строку

Рассмотрим самый надежный способ — создание новой службы Windows с помощью утилиты sc create. Откройте командную строку от имени администратора и выполните команду, адаптировав пути под вашу версию платформы. Обратите внимание на пробелы после знаков равенства — они обязательны в синтаксисе sc.


sc create "1C:Enterprise 8.3 Debug Server" binPath= "\"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe\" -srvc -agent -regport 2541 -port 2540 -range 2560:2591 -d \"C:\1C_Data\DebugServer\" -debug" start= auto displayname= "1C:Enterprise 8.3 Debug Server"

Разберем ключи, которые мы использовали:

  1. -srvc — запуск в режиме службы.
  2. -agent — запуск агента сервера.
  3. -regport 2541 — порт главного менеджера кластера.
  4. -port 2540 — порт агента.
  5. -range 2560:2591 — диапазон портов для рабочих процессов.
  6. -d "C:\1C_Data\DebugServer" — путь к реестру кластера.
  7. -debug — обязательный флаг для отладочного сервера, который включает возможность подключения конфигуратора к процессам сервера.

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

Вариант 2: Запуск в режиме консольного приложения

Если отладочный сервер нужен вам лишь эпизодически, не обязательно «засорять» систему лишними службами. Мы можем запустить сервер как обычное приложение. В этом случае сервер будет работать до тех пор, пока открыто окно консоли.

Для этого создайте .bat файл со следующим содержимым:


"C:\Program Files\1cv8\8.3.23.1865\bin\ragent.exe" -agent -regport 2541 -port 2540 -range 2560:2591 -d "C:\1C_Data\DebugServer" -debug
pause

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

Особенности настройки отладки по HTTP

Начиная с современных версий платформы (8.3.7 и выше), 1С рекомендует использовать отладку по протоколу HTTP. Для второго сервера это особенно удобно, так как не нужно беспокоиться о динамических портах отладки. Чтобы включить этот режим, добавьте в строку запуска параметры:

-http -debugserverport 2543

В этом случае в настройках конфигуратора при подключении к базе нужно будет указать адрес отладочного сервера и выбранный порт.

Добавление сервера в консоль администрирования

После того как служба успешно запущена, нам необходимо «увидеть» ее в стандартной консоли mmc (Администрирование серверов 1С Предприятия). По умолчанию консоль подключается к порту 1540. Чтобы добавить наш новый сервер:

  1. Откройте консоль администрирования.
  2. Нажмите правой кнопкой на корень «Central 1C:Enterprise 8.3 clusters».
  3. Выберите «Создать» -> «Центральный сервер».
  4. В поле «Имя» введите localhost (или имя вашего сервера), а в поле «Порт» укажите 2540 (тот самый порт агента, который мы прописали в ключе -port).

Теперь вы можете создавать информационные базы на отладочном сервере точно так же, как на рабочем, не опасаясь их перемешивания.

Заключение и рекомендации

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

Краткий чек-лист для проверки:

Следуя этой инструкции, вы сможете создать полноценную изолированную среду для разработки и тестирования, минимизировав риски для стабильности бизнес-процессов.

← На главную