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

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

При переходе на новые версии платформы 1С:Предприятие (начиная с 8.3.18 и выше) системные администраторы и разработчики часто сталкиваются с изменением логики управления службами в операционных системах семейства Linux. В этой статье мы подробно разберем, как активировать режим отладки на примере Ubuntu 20.04 и платформы 8.3.19.1417, проанализируем структуру конфигурационных файлов и выясним, почему стандартные точки останова могут не срабатывать в виртуальных средах.

Поиск и редактирование конфигурационного файла

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

Проанализируем стандартные пути. Обычно файл конфигурации расположен по адресу:

/opt/1cv8/x86_64/8.3.19.1417/srv1cv83.conf

Для удобства управления в системе часто создаются символические ссылки (symlinks). Настроим их, чтобы система могла корректно считывать параметры:


# ln -s /opt/1cv8/x86_64/8.3.19.1417/srv1cv83 /etc/init.d/srv1cv83
# ln -s /opt/1cv8/x86_64/8.3.19.1417/srv1cv83.conf /etc/default/srv1cv83

Важно помнить, что начиная с версии 8.3.18, 1С поддерживает параллельную установку нескольких версий сервера. Поэтому имя службы и конфигурационного файла может включать номер версии, например: srv1cv8-8.3.19.1417. Убедимся, что мы редактируем именно тот файл, который соответствует запущенному экземпляру сервера.

Включение параметра DEBUG

Рассмотрим содержимое файла srv1cv83.conf. Нам необходимо найти или добавить переменную SRV1CV8_DEBUG. Существует два основных протокола отладки: TCP и HTTP. Посмотрим, как их активировать.

1. Классическая отладка по протоколу TCP:

В файле конфигурации установим значение 1 для соответствующего параметра:

SRV1CV8_DEBUG=1

2. Современная отладка по протоколу HTTP:

Протокол HTTP работает более стабильно в распределенных сетях и через VPN. Для его включения укажем значение -http:

SRV1CV8_DEBUG=-http

После внесения изменений обязательно перезапустим службу сервера 1С, чтобы новые настройки вступили в силу:

systemctl restart srv1cv83

Особенности работы с Systemd

В современных дистрибутивах Linux (включая Ubuntu 20.04) управление демонами осуществляется через systemd. Если стандартный способ через файл в /etc/default/ не срабатывает, проанализируем возможность переопределения параметров через systemctl edit.

Выполним команду для редактирования юнита:

systemctl edit srv1cv83.service

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


[Service]
Environment=SRV1CV8_DEBUG=1

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

Проблема отладки в виртуальных средах (VirtualBox)

Выясним причину, по которой отладка может не работать, даже если параметр SRV1CV8_DEBUG включен. Часто сервер 1С разворачивается на виртуальной машине (VirtualBox, VMware). Если сетевой адаптер настроен в режиме NAT, возникает проблема "невидимости" портов.

Рассмотрим механизм: при отладке сервер 1С должен инициировать обратное соединение с конфигуратором (на компьютере разработчика). В режиме NAT виртуальная машина находится за внутренним шлюзом и "не видит" IP-адрес хоста напрямую для входящих пакетов на динамические порты.

Решение задачи:

  1. Переключим сетевой адаптер в режим "Сетевой мост" (Bridged Adapter). В этом случае виртуальная машина получит IP-адрес из той же подсети, что и основной компьютер.
  2. Если используется NAT, необходимо выполнить проброс (Port Forwarding) целого диапазона портов отладки (по умолчанию это 1560–1591).

Настройка автономного сервера отладки (dbgs)

В сложных сетевых конфигурациях рассмотрим использование dbgs — автономного сервера отладки. Он позволяет отделить процесс отладки от основного рабочего процесса ragent.

Попробуем запустить его вручную для проверки связи:

/opt/1cv8/x86_64/8.3.19.1417/dbgs -addr 192.168.1.10 -port 1560

Где 192.168.1.10 — адрес вашего сервера. После этого в настройках службы 1С нужно указать использование этого сервера отладки через параметр запуска -attach. Это гарантирует, что точки останова будут срабатывать стабильно, независимо от внутренних механизмов демона srv1cv83.

Проверка прав доступа и брандмауэра

Проанализируем еще один критический момент — права доступа. Файл /etc/default/srv1cv83 должен быть доступен для чтения пользователю usr1cv8, от имени которого работает сервер. Если права ограничены (например, файл создан под root с маской 600), сервер просто проигнорирует параметр отладки.

Установим корректные права:


chown usr1cv8:grp1cv8 /etc/default/srv1cv83
chmod 644 /etc/default/srv1cv83

Также проверим настройки iptables или ufw. Для успешной отладки должны быть открыты:

Только при соблюдении всех вышеперечисленных условий — правильной записи в конфигурационном файле, доступности портов и корректной сетевой видимости — режим отладки на Linux-платформе 8.3.19 будет функционировать корректно.

← На главную