Как включить и настроить режим отладки сервера 1С:Предприятие на ОС Linux

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

Настройка режима отладки на сервере 1С под управлением Linux значительно отличается от аналогичного процесса в Windows. Если в Windows достаточно изменить параметры в реестре или строке запуска службы, то в Linux метод зависит от версии платформы, используемого дистрибутива (Ubuntu, Debian, CentOS, Astra Linux) и архитектуры системы инициализации (init.d или systemd). В этой статье мы подробно разберем, как активировать -debug, включить поддержку HTTP-отладки для работы через VPN и устранить типичные проблемы с доступом.

Предварительная проверка текущего состояния

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

ps aux | grep ragent

В выводе команды мы должны найти строку, содержащую путь к исполняемому файлу ragent. Если в этой строке отсутствует параметр -debug, значит, режим отладки выключен. Если же сервер вовсе не запускается после ваших правок, эта же команда поможет увидеть, не «висит» ли в памяти старый процесс, который блокирует запуск нового.

Решение для RPM-систем (CentOS, RedHat, Mageia)

В дистрибутивах, использующих пакетный менеджер RPM, настройки параметров запуска демона 1С обычно вынесены в отдельный конфигурационный файл. Разберем ситуацию на примере CentOS. Основная ошибка новичков заключается в попытке редактировать сам скрипт запуска в /etc/init.d/, хотя правильнее менять файл переменных окружения.

  1. Остановим сервер командой: /etc/init.d/srv1cv83 stop (при необходимости в это время можно выполнить восстановление баз данных PostgreSQL из копий).
  2. Откроем файл настроек: nano /etc/sysconfig/srv1cv83.
  3. Найдем строку #SRV1CV8_DEBUG=. Нам нужно раскомментировать ее (убрать символ #) и присвоить значение 1: SRV1CV8_DEBUG=1.
  4. Сохраним изменения и запустим сервер: /etc/init.d/srv1cv83 start.

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

Настройка для DEB-систем (Ubuntu, Debian, Astra Linux) до версии 8.3.20

В системах семейства Debian настройки часто хранятся непосредственно в скрипте инициализации. Если вы используете сценарий для автоматизации установки 1С на Astra Linux, структура файлов может быть уже оптимизирована. Рассмотрим, как внести правки, чтобы режим отладки активировался корректно и не вызывал сбоев при старте.

Откроем файл /etc/init.d/srv1cv83. Нам необходимо убедиться, что переменная SRV1CV8_DEBUG определена в начале файла. Если ее нет, добавим строку SRV1CV8_DEBUG=1. Однако этого может быть недостаточно. Проанализируем функцию buildCommandLine внутри скрипта. Она должна выглядеть примерно так:


function buildCommandLine {
    local cmdline="$SRV1CV8_BINDIR/ragent -daemon"
    # ... другие параметры ...
    [ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug"
    echo $cmdline
}

Обратите внимание на синтаксис "x$SRV1CV8_DEBUG" == "x1". Это классический способ проверки переменной в shell-скриптах, который предотвращает ошибки, если переменная пуста. После правки выполним systemctl daemon-reload и перезапустим службу srv1cv83.

Современный метод для платформы 8.3.21, 8.3.22 и выше (systemd)

В новых версиях 1С:Предприятия (начиная с 8.3.21) архитектура запуска изменилась. Теперь вместо скриптов init.d используются unit-файлы systemd. Рассмотрим, как правильно включить отладку в этом случае, чтобы настройки не «слетели» при обновлении платформы.

Вместо прямого редактирования файла в /opt/1cv8/..., воспользуемся механизмом переопределения. Выполним команду:

systemctl edit srv1cv8-8.3.22.1709@default.service

(Укажите вашу версию платформы). В открывшемся редакторе добавим секцию:


[Service]
Environment="SRV1CV8_DEBUG=-debug"

Если вы хотите использовать HTTP-отладку (что крайне рекомендуется для современных конфигураций), строка должна выглядеть так:

Environment="SRV1CV8_DEBUG=-debug -http"

После сохранения файла systemd сам создаст необходимую структуру каталогов и применит настройки. Не забудьте выполнить systemctl restart srv1cv8-....

Включение отладки по протоколу HTTP

Часто возникает ситуация: сервер 1С находится в одной сети (например, в облаке или офисе), а программист — в другой (работа через VPN). В этом случае стандартная отладка по TCP часто не работает из-за особенностей маршрутизации и блокировок портов. Выясним, как активировать протокол HTTP, который работает стабильнее.

Для активации HTTP-отладки к ключу -debug нужно добавить ключ -http. В старых скриптах init.d мы модифицируем функцию формирования командной строки:

[ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug -http"

При использовании этого режима сервер 1С запускает дополнительный процесс dbgs, который по умолчанию слушает порт 1550. Проверим его появление:

ps aux | grep dbgs

В Конфигураторе 1С в меню Сервис — Параметры — Отладка необходимо переключить протокол на HTTP. Если автоматический поиск не находит сервер, укажите адрес в формате http://IP_вашего_сервера:1550. Этот же протокол используется, когда вы проводите тестирование http сервисов.

Типичные проблемы и их решение

Разберем ситуации, когда флаги установлены, но отладка не работает:

  1. Блокировка портов (Firewall): Проверьте, открыты ли порты на сервере Linux. Для TCP-отладки нужен диапазон 1560-1591, для HTTP — порт 1550. Воспользуйтесь командами iptables -L или ufw status.
  2. Разные подсети: Если клиент и сервер в разных сетях, TCP-отладка требует, чтобы сервер «видел» компьютер программиста. Если это невозможно (NAT), используйте только HTTP-отладку через dbgs.
  3. Зависание интерфейса (Linux GUI): Если вы ведете разработку непосредственно в ОС Linux (например, в Ubuntu Desktop), вы можете столкнуться с блокировкой мыши при попадании на точку останова. Это связано с перехватом фокуса окном отладчика. Попробуйте использовать графический стек X11 вместо Wayland при входе в систему.
  4. Права доступа: Убедитесь, что конфигурационные файлы, которые вы правите, сохранили владельца usr1cv8. Если вы создали файл от имени root, сервер может не запуститься из-за невозможности прочитать настройки.

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

← На главную