Как настроить отладку по протоколу HTTP на сервере 1С:Предприятие 8.3 под управлением Linux

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

Переход на новые версии платформы 1С:Предприятие (начиная с 8.3.20 и выше) часто сопровождается трудностями при настройке привычных инструментов разработчика. Одной из наиболее распространенных проблем является отказ работы отладки по протоколу HTTP на серверных ОС Linux (например, CentOS 7.9). Рассмотрим подробно, почему старые методы настройки могут не срабатывать и как правильно сконфигурировать систему, чтобы серверные процедуры успешно отслеживались в конфигураторе.

Анализ проблемы и выбор протокола отладки

В современных реалиях протокол HTTP для отладки является более предпочтительным, чем устаревший TCP. Он стабильнее работает через брандмауэры и NAT, а также позволяет отлаживать фоновые задания и серверные вызовы в сложных распределенных системах. Выясним причину, по которой отладка может не включаться, несмотря на добавление флагов. Зачастую в списке процессов ps aux | grep 1c мы видим, что ragent и rphost запускаются с параметром -tcp, хотя в конфигурационном файле прописан -http. Это указывает на то, что система инициализации (systemd или init.d) использует не тот файл настроек или обращается к кэшированной версии конфигурации.

Шаг 1. Определение активного файла конфигурации

Проанализируем структуру каталогов 1С на Linux. В зависимости от способа установки (rpm или deb), настройки могут находиться в разных местах. На системах CentOS чаще всего используются два варианта:

  1. Файл параметров /etc/sysconfig/srv1cv83 или /etc/sysconfig/srv1cv8-8.3.x.x.
  2. Unit-файл системы systemd, расположенный в /lib/systemd/system/srv1cv8-8.3.x.x@.service.

Важно понимать, что если параметры жестко заданы в Unit-файле в секции ExecStart, изменения в файле sysconfig могут игнорироваться. Посмотрим, какой именно файл используется, с помощью команды:

systemctl status srv1cv8-8.3.23.1739@default.service

Шаг 2. Правильный синтаксис флагов отладки

Разберем важный нюанс в написании параметров. В старых версиях мы писали -debug -http. Однако в новых сборках платформы (8.3.22, 8.3.23) использование обоих флагов одновременно иногда приводит к конфликту, и сервер "откатывается" к протоколу TCP по умолчанию. Правильно указывать только один параметр:

SRV1CV8_DEBUG=-http

Флаг -debug подразумевается автоматически при наличии -http. Если вы редактируете файл /etc/sysconfig/srv1cv83, убедитесь, что строка выглядит именно так, без лишних пробелов в начале.

Шаг 3. Корректное редактирование Unit-файла systemd

Рассмотрим процедуру изменения настроек через систему инициализации. Прямое редактирование файлов в /lib/systemd/system/ не рекомендуется. Вместо этого используем механизм "drop-in" файлов. Выполним команду:

systemctl edit srv1cv8-8.3.23.1739@.service

В открывшемся редакторе добавим секцию, которая переопределит переменную окружения:


[Service]
Environment=SRV1CV8_DEBUG=-http

Это гарантирует, что при обновлении платформы ваши настройки не будут затерты стандартным файлом поставки.

Шаг 4. Применение настроек и работа с кэшем systemd

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

  1. Останавливаем службу: systemctl stop srv1cv8-8.3.23.1739@default.service
  2. Выполняем перечитку конфигурации: systemctl daemon-reload
  3. Запускаем службу: systemctl start srv1cv8-8.3.23.1739@default.service

Если после этого в выводе ps aux вы все еще видите -tcp, проверьте наличие других конфигурационных файлов, например, скриптов в /etc/rc.d/init.d/, которые могут конфликтовать с современными методами запуска.

Шаг 5. Настройка сетевого доступа и портов

Отладка по HTTP требует работы отдельного компонента — сервера отладки (обычно это процесс dbgs, интегрированный в ragent). По умолчанию он слушает порт 1550. Проанализируем ситуацию: если сервер находится на Linux, а Конфигуратор на Windows, нам необходимо убедиться, что порт открыт в firewalld:


firewall-cmd --permanent --add-port=1550/tcp
firewall-cmd --reload

Также важно проверить, что сервер 1С может "достучаться" до клиентской машины (вашего компьютера с Конфигуратором). В режиме HTTP-отладки обмен данными двусторонний.

Шаг 6. Настройка в Конфигураторе 1С

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

  1. Запустите Конфигуратор.
  2. Откройте меню Сервис — Параметры.
  3. На вкладке Запуск 1С:Предприятия — Дополнительно проверьте, что стоит переключатель "Протокол отладки: HTTP".
  4. Зайдите в меню Отладка — Подключение.
  5. Нажмите кнопку Настройка. Если сервер отладки не определился автоматически, введите адрес вручную в формате: http://имя_сервера:1550.

Обратите внимание на флажок "Автоматическое подключение" для серверных процедур и фоновых заданий — они должны быть отмечены, иначе точка останова в серверном модуле не сработает.

Дополнительные рекомендации при работе на Linux

Проанализируем ситуацию, когда отладка все равно не работает. Иногда причиной становится использование IPv6. Платформа 1С может пытаться привязать отладчик к IPv6-адресу, который недоступен клиенту. Попробуйте принудительно отключить IPv6 в настройках ядра Linux или убедиться, что в файле /etc/hosts имя сервера резолвится в корректный IPv4 адрес.

Также помните о кэше конфигурации на стороне клиента Windows. Если вы долго мучали настройки, полезно будет почистить папку %AppData%\1C\1cv8\, чтобы убрать старые сеансы отладки, которые могут мешать новому подключению.

← На главную