Настройка отладки на сервере 1С под управлением Linux (например, Debian или Ubuntu) часто становится серьезным испытанием для системных администраторов и разработчиков. В отличие от Windows-среды, где многие процессы автоматизированы, в Linux-версии требуется ручная правка конфигурационных файлов и понимание особенностей сетевого взаимодействия между компонентами системы. Рассмотрим подробно, как активировать режим отладки и что делать, если стандартные методы не приносят результата.
Проанализируем типичную ситуацию: сервер 1С запущен, информационная база доступна, конфигуратор подключается, но точки останова в серверных модулях игнорируются. Это происходит потому, что режим отладки либо не включен в параметрах запуска службы ragent, либо протокол передачи данных заблокирован сетевыми экранами.
Существует два основных протокола отладки:
dbgs (сервер отладки). В этом режиме и сервер, и клиент подключаются к посреднику, что делает работу через NAT и сложные сетевые структуры гораздо стабильнее.Разберем по шагам, как настроить наиболее стабильный вариант — HTTP-отладку.
Прежде всего, нам необходимо отредактировать файл переменных окружения сервера 1С. В большинстве дистрибутивов Linux путь к этому файлу выглядит так: /etc/default/srv1cv83 (или это может быть ссылка на файл в каталоге установки /opt/1cv8/x86_64/.../srv1cv83.conf).
Найдем строку, отвечающую за включение отладки, и убедимся, что параметр активирован. Рассмотрим пример настройки:
# Включение режима отладки
SRV1CV8_DEBUG=1
Однако простого включения флага DEBUG часто недостаточно для протокола TCP. Чтобы принудительно перевести сервер на HTTP-протокол, проанализируем скрипт инициализации. Выясним причину, по которой параметр -http может не подхватываться автоматически.
Нам необходимо модифицировать скрипт запуска сервера, чтобы добавить ключ -http в командную строку запуска демона ragent. Откроем файл /etc/init.d/srv1cv83 (или соответствующий unit-файл systemd) и найдем блок, где формируется переменная cmdline.
Проанализируем и изменим условие добавления флага отладки:
# Было:
[ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug"
# Стало:
[ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug -http"
Важный момент: использование ключа -http без дополнительных параметров заставляет сервер 1С автоматически запустить встроенный сервер отладки dbgs на стандартном порту. Это наиболее простой и эффективный способ для небольших и средних внедрений.
В некоторых случаях для корректной работы COM-соединений и внешних подключений требуется создать файл конфигурации в каталоге conf сервера 1С. Рассмотрим структуру файла /opt/1cv8/x86_64/8.3.20.1590/conf/comcntrcfg.xml:
<config xmlns="http://v8.1c.ru/v8/comcntrcfg">
<debugconfig debug="true" protocol="tcp" debuggerURL="tcp://localhost:1560"/>
</config>
Внимание: Если вы решили использовать HTTP-отладку, данный файл может конфликтовать с настройками или быть избыточным. Попробуйте сначала настроить отладку без него, а если она не заработает — адаптируйте его под HTTP, указав соответствующий протокол и URL сервера отладки.
Выясним важную особенность управления процессами в Linux. Обычный перезапуск службы командой systemctl restart srv1cv83 не всегда корректно завершает все дочерние процессы rphost, которые могут «зависнуть» и продолжать работу со старыми параметрами отладки.
Выполним правильную последовательность действий:
systemctl stop srv1cv83.usr1cv8: ps -ef | grep 1cv8. Если процессы остались, завершим их принудительно через kill -9.systemctl daemon-reload.systemctl start srv1cv83.Как показывает практика, в некоторых дистрибутивах (Debian 10/11) изменения в скриптах инициализации подхватываются системой только после полной перезагрузки операционной системы. Если после перезапуска службы параметры в ps -fU usr1cv8 не изменились, выполните reboot.
После запуска проверим, что процессы действительно работают в нужном режиме. Выполним команду:
ps -fU usr1cv8
В выводе мы должны увидеть запущенные процессы ragent, rmngr и rphost с флагами -debug и -http. Также должен появиться процесс dbgs, если он запущен встроенными средствами платформы.
Теперь перейдем в Конфигуратор на рабочем месте разработчика:
http://192.168.1.17:1560).Если серверные сеансы видны, попробуем установить точку останова в любом серверном модуле (например, в модуле приложения или общем модуле с признаком «Сервер»). При выполнении кода система должна штатно остановиться на выбранной строке.
Подведем итоги нашего исследования. Для успешной отладки на Linux-сервере 1С следует придерживаться следующих правил:
conf. Файлы должны принадлежать пользователю usr1cv8.dbgs) с помощью команды telnet или nc с клиентской машины.ps показывает старые параметры — перезагрузите весь сервер.Следуя этой инструкции, мы обеспечим стабильную среду для разработки и поиска ошибок в коде, исполняемом на серверной стороне платформы 1С.