Разработка и Конфигурация · 9 мин
Как запустить сервер отладки 1С
Как запустить сервер отладки 1С: включение отладки на сервере, флаги -debug и -debughttpport, настройка конфигуратора, типичные ошибки и способы их устранения.
Сервер отладки 1С — это компонент, который позволяет конфигуратору подключаться к исполняемому коду и пошагово выполнять его: ставить точки останова, смотреть значения переменных, оценивать выражения. Без запущенной отладки на сервере предприятия конфигуратор не увидит серверные процедуры и функции, даже если сам сервер работает штатно.
По умолчанию кластер серверов 1С запускается без поддержки отладки — это сделано сознательно, поскольку отладка снижает производительность и открывает дополнительную поверхность для доступа к коду. Поэтому на рабочих (продуктивных) серверах отладку обычно держат выключенной, а включают её на тестовых и разработческих контурах.
Способ запуска зависит от того, где работает сервер 1С: на Windows или Linux, какой протокол отладки используется (TCP или HTTP), и от версии платформы. Ниже разобраны основные сценарии с точными командами, проверкой результата и типичными ошибками.
Какие протоколы отладки существуют и что выбрать
Платформа 1С поддерживает два протокола отладки: TCP (классический, работает через отладочные порты диапазона 1560–1591) и HTTP (появился в более новых версиях платформы, отладка идёт через веб-сервер или отдельный порт). Выбор протокола задаётся в свойствах информационной базы в конфигураторе.
TCP-отладка проще в настройке и не требует веб-сервера, но чувствительна к сетевым ограничениям: порты должны быть открыты между компьютером разработчика и сервером. HTTP-отладка удобна, когда доступ к серверу возможен только по стандартным веб-портам, например при работе через публикацию на веб-сервере или в облачных сценариях.
Сравнение вариантов
Подходит для локальной сети и прямого доступа к серверу. Требует открытых портов диапазона 1560–1591, не работает через большинство прокси.
Подходит для работы через веб-сервер, VPN и ограниченные сети. Требует настройки публикации или параметров -debughttpport, немного сложнее в запуске.
Запуск отладки на Windows: настройка службы агента сервера
На Windows агент сервера 1С обычно работает как служба «Агент сервера 1С:Предприятия». Чтобы включить отладку, нужно изменить параметры запуска этой службы. Откройте реестр (regedit) и найдите ветку службы, например: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent — имя может отличаться в зависимости от версии и порта.
В параметре ImagePath находится строка запуска исполняемого файла ragent.exe. Добавьте в конец строки ключ -debug, не удаляя существующие параметры. Например, строка вида "C:\Program Files\1cv8\...\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\srvinfo" должна получить в конце -debug.
После правки реестра перезапустите службу через оснастку services.msc или командной строкой. Без перезапуска изменения не вступят в силу — это самая частая причина, почему «отладка не включается».
net stop "1C:Enterprise 8.3 Server Agent (x86-64)" && net start "1C:Enterprise 8.3 Server Agent (x86-64)"Запуск отладки на Linux
На Linux агент сервера запускается скриптом или юнитом systemd. Найдите файл запуска — обычно это /etc/systemd/system/srv1cv8-*.service или скрипт в /opt/1cv8 — и добавьте ключ -debug в строку запуска ragent, аналогично Windows-сценарию.
После правки юнита systemd выполните systemctl daemon-reload и перезапустите службу: systemctl restart srv1cv8-.... Проверить, что агент запущен с нужным ключом, можно командой ps aux | grep ragent — в выводе должна присутствовать строка с параметром -debug.
Если сервер запускается вручную из терминала (что бывает на тестовых стендах), просто добавьте ключ к команде запуска: ./ragent -debug вместе с остальными параметрами.
Включение отладки по HTTP
Для HTTP-отладки помимо -debug агенту передаются дополнительные параметры. Ключ -debughttpport задаёт порт, на котором сервер отладки принимает HTTP-подключения, а -debughttppassword — пароль доступа к отладке. Пример строки запуска: ragent -debug -debughttpport 1550 -debughttppassword mypass.
Если база опубликована на веб-сервере, HTTP-отладка может идти через эту публикацию: в файле default.vrd публикации должен быть разрешён элемент отладки (атрибут debug с включённым протоколом http). В этом случае отдельный порт для отладки не нужен — запросы идут через веб-сервер.
Настройка конфигуратора и подключение к предметам отладки
После запуска сервера с отладкой настройте конфигуратор. Откройте меню «Сервис → Параметры» и на вкладке «Запуск 1С:Предприятия» проверьте, какой протокол отладки выбран. Затем в свойствах информационной базы (или в диалоге подключения отладки) укажите адрес сервера отладки — имя или IP сервера, для HTTP — порт и пароль, если они заданы.
Запустите отладку клавишей F5 или командой «Отладка → Начать отладку». Если сеанс уже запущен без отладки, подключите его вручную: «Отладка → Подключение», отметьте нужные предметы отладки (типы клиентских и серверных вызовов) и выберите сеанс в списке доступных.
- 1Добавьте ключ -debug в параметры запуска агента сервера (реестр на Windows, юнит systemd на Linux)
- 2Перезапустите службу агента сервера 1С
- 3В конфигураторе выберите протокол отладки и укажите адрес и порт сервера отладки
- 4Запустите отладку (F5) или подключитесь к уже работающему сеансу через «Отладка → Подключение»
- 5Поставьте точку останова и убедитесь, что выполнение останавливается на ней
Проверка результата и типичные ошибки
Признак успешного запуска — конфигуратор видит предметы отладки в диалоге подключения и останавливается на точках останова в серверном коде. Если список предметов пуст или подключение завершается ошибкой, проверяйте по цепочке: запущен ли агент с ключом -debug, открыт ли сетевой доступ, совпадает ли протокол в настройках базы и конфигуратора.
Отдельный частый случай — кластер из нескольких рабочих серверов. Отладку нужно включить на каждом сервере, где может выполняться код, иначе сеанс, попавший на сервер без -debug, не будет останавливаться. Также учтите, что фоновые задания отлаживаются отдельно: их нужно подключать через диалог подключения предметов отладки, отметив соответствующий тип.
Как проверить результат
В параметрах процесса присутствует -debug (и -debughttpport для HTTP)
Ключ отсутствует — служба не перезапущена или правка не сохранена
Видны доступные предметы и сеансы отладки
Список пуст — проблема с сетью, протоколом или запуском сервера
Выполнение останавливается, доступны переменные и стек вызовов
Точка не срабатывает — не тот предмет отладки или код выполняется на другом сервере
Часто задаваемые вопросы
Можно ли включить отладку без перезапуска службы сервера 1С?
Нет. Ключ -debug читается агентом сервера только при старте, поэтому перезапуск службы обязателен. Планируйте кратковременную остановку работы пользователей или используйте отдельный тестовый кластер.
Почему конфигуратор пишет, что сервер отладки не найден?
Чаще всего причина в закрытых портах или неверном протоколе. Проверьте, что агент запущен с -debug, что брандмауэр пропускает нужные порты (1560–1591 для TCP или порт HTTP-отладки), и что в свойствах базы выбран тот же протокол, с которым запущен сервер.
Опасно ли держать отладку включённой на рабочем сервере?
Да, это не рекомендуется. Отладка заметно снижает производительность сервера и позволяет подключившемуся разработчику читать и изменять данные в памяти сеансов. Включайте её только на тестовых контурах и выключайте после завершения работ.
Как отладить фоновое задание или регламентное задание?
Откройте «Отладка → Подключение», в настройках предметов отладки отметьте фоновые задания и включите автоматическое подключение. После этого при запуске фонового задания конфигуратор подключится к нему и остановится на точках останова.
Нужен ли веб-сервер для HTTP-отладки?
Не обязательно. Если заданы ключи -debughttpport и -debughttppassword, сервер отладки принимает HTTP-подключения напрямую на указанном порту. Веб-сервер нужен только когда отладка идёт через опубликованную базу.
Отладка работает для клиентского кода, но не останавливается на серверном. Что делать?
Убедитесь, что сервер запущен с -debug и что в диалоге подключения отмечены серверные предметы отладки. Если кластер состоит из нескольких серверов, включите отладку на каждом из них — сеанс может выполняться на сервере без отладки.
Что важно запомнить
Сервер отладки 1С включается ключом -debug в параметрах запуска агента сервера с обязательным перезапуском службы. Для HTTP-отладки добавляются -debughttpport и -debughttppassword. В конфигураторе выберите тот же протокол, что и на сервере, проверьте открытость портов и подключите нужные предметы отладки. На продуктивных серверах отладку держите выключенной.