Настройка режима отладки на сервере 1С под управлением Linux значительно отличается от аналогичного процесса в Windows. Если в Windows достаточно изменить параметры в реестре или строке запуска службы, то в Linux метод зависит от версии платформы, используемого дистрибутива (Ubuntu, Debian, CentOS, Astra Linux) и архитектуры системы инициализации (init.d или systemd). В этой статье мы подробно разберем, как активировать -debug, включить поддержку HTTP-отладки для работы через VPN и устранить типичные проблемы с доступом.
Прежде чем приступать к изменениям конфигурации, нам необходимо выяснить, с какими параметрами запущен сервер в данный момент. Для этого проанализируем список запущенных процессов. Выполним в терминале команду:
ps aux | grep ragent
В выводе команды мы должны найти строку, содержащую путь к исполняемому файлу ragent. Если в этой строке отсутствует параметр -debug, значит, режим отладки выключен. Если же сервер вовсе не запускается после ваших правок, эта же команда поможет увидеть, не «висит» ли в памяти старый процесс, который блокирует запуск нового.
В дистрибутивах, использующих пакетный менеджер RPM, настройки параметров запуска демона 1С обычно вынесены в отдельный конфигурационный файл. Разберем ситуацию на примере CentOS. Основная ошибка новичков заключается в попытке редактировать сам скрипт запуска в /etc/init.d/, хотя правильнее менять файл переменных окружения.
/etc/init.d/srv1cv83 stop (при необходимости в это время можно выполнить восстановление баз данных PostgreSQL из копий).nano /etc/sysconfig/srv1cv83.#SRV1CV8_DEBUG=. Нам нужно раскомментировать ее (убрать символ #) и присвоить значение 1: SRV1CV8_DEBUG=1./etc/init.d/srv1cv83 start.Важный нюанс: в некоторых случаях после изменения этого файла требуется полная перезагрузка операционной системы, так как служба может некорректно подхватывать обновленные переменные окружения только через перезапуск демона.
В системах семейства 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.
В новых версиях 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-....
Часто возникает ситуация: сервер 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 сервисов.
Разберем ситуации, когда флаги установлены, но отладка не работает:
iptables -L или ufw status.dbgs.usr1cv8. Если вы создали файл от имени root, сервер может не запуститься из-за невозможности прочитать настройки.Используя приведенные инструкции, мы можем гибко настраивать сервер 1С на Linux для любых задач разработки — от локальной правки кода до сложной отладки распределенных систем через защищенные каналы связи.