Включение отладки на Linux для сервера 1С выполняется как и в Windows с помощью ключа -debug в строке запуска службы. Различие только в способе указания данного ключа. Как это делается в Windows можно посмотреть здесь. О том как запустить отладку 1С по протоколу TCP или HTTP на Linux читаем ниже.

Настройка отладки по протоколу TCP

Следует сразу отметить, что для отладки клиентских сеансов по протоколу TCP, никаких настроек на сервере делать не нужно (о настройке клиента ниже).

Запуск сервера 1С с ключом -debug нужен только для отладки серверных сеансов. Так же не стоит запускать сервер production в режиме отладки, так как это снижает его производительность.

Для запуска агента сервера 1С с ключом -debug надо выполнить следующие шаги:

1. Зайдем на сервер 1С под пользователем root:

2. Остановим службу сервера 1C. Здесь и далее имя демона сервера 1С указано то, которое по умолчанию назначается при типовой установке. Имя службы тестового сервера 1С может отличаться, например, если вы установили второй экземпляр сервера и назвали его по другому:

3. Откроем на редактирование конфигурационный файл /etc/sysconfig/srv1cv83. Если вы включаете отладку на тестовом экземпляре сервере 1С на той же машине, то нужно редактировать конфигурационный файл в каталоге тестового сервера (примерное имя каталога может быть таким /etc/sysconfig/srv1cv83.14-1857). Подробней про установку второго сервера 1С на один компьютер можно почитать тут.

4. Ищем строку:

5. Меняем ее на:

6. Запускаем службу сервера:

Настройка отладки по протоколу HTTP

Если при отладка по tcp ваш компьютер (отладчик) и предмет отладки (например серверный сеанс 1С) обмениваются по сети напрямую, то отладка в 1С по протоколу http организована по трех-звеньевой схеме. Дополнительно запускается сервер отладки (процесс dbgs), который становится посредником между отладчиком и предметом отладки. Теперь все потоки информации идут только через исходящие соединения к серверу отладки. Данный вариант позволяет вести отладку в условиях когда отладчик и предмет отладки разделяют маршрутизаторы, сетевые экраны с NAT и фаерволы блокирующие входящие TCP соединения от предмета отладки к отладчику.

Включение HTTP-отладки на сервере 1C

Для запуска http отладки на сервере 1С Предприятия под ОС Linux сначала выполним настройки из предыдущего раздела «Настройка отладки по протоколу TCP», а затем выполним следующие шаги:

1. Открываем скрипт запуска сервера 1С /etc/init.d/srv1cv83 на редактирование (для второго экземпляра сервера 1С (тестового) меняем скрипт запуска именно тестового сервера):

2. Найдем такую строку:

Добавим в нее ключ -http в конце вот так:

3. Процесс сервера отладки dbgs слушает по-умолчанию порт 1550. Если для отладки необходимо использовать другой порт, то строку необходимо модифицировать так (на примере порта 1650):

4. Сохраняем скрипт запуска и стартуем сервер 1C. Напоминаю, имя службы тестового сервера может отличаться:

Поверка работы HTTP сервера отладки

Посмотрим запущенные процессы с фильтром по пользователю от имени которого запускается сервер 1С, например usr1cv8:

Должен быть запущен процесс сервера отладки dbgs, а также у процесса ragent должен быть отображены ключи запуска -debug и -http .

Процесс сервера http отладки 1с

В случае, если запуск сервера отладки осуществлялся на порту отличном от порта по умолчанию,  то у процесса ragent  и dbgs также должен присутствовать ключ с номером порта как на картинке ниже:

Порты сервера http отладки 1с

Настройка параметров базы данных для подключения к серверу отладки по HTTP

После запуска сервера http отладки, нужно настроить для работы с ним 1С Конфигуратор. Для этого в конфигураторе:

  1. Заходим в главном меню Сервис -> Параметры. Там ищем закладку «Отладка».
  2. На закладке «Отладка» делаем настройки:
  • Протокол отладки — выбираем параметр «Отладка по протоколу HTTP»
  • Сервер отладки у нас запущен на той же машине  что и менеджер кластера, поэтому выбираем «Использовать сервер отладки кластера»
  • Если конфигуратор запущен для целевой базы, то ставим переключатель на «Имя текущей информационной базы». В нашем случае база с именем zup_test_1. Если хотим подключиться для отладки к другой базе, то ставим переключатель на «Использовать указано имя текущей информационной базы» и вводим имя целевой базы как оно указано в реестре кластера.
  • Вводим пароль доступа к базе, если хотим подключиться к другой базе, не той что открыта в конфигураторе.

 

Настройка отладки HTTP в конфигураторе 1С

3. Нажимаем кнопку «Перезапустить» чтобы применить настройки.

Настройка клиентского приложения для отладки

Если вы используете отладку только по протоколу TCP, то для отладки клиентских сеансов всех вышеперечисленных настроек сервера 1С можно не выполнять. Для того чтобы клиентский сеанс конкретного пользователя стал доступен для отладки необходимо сделать следующие шаги.

1. В режиме 1С Предприятие заходим в меню Настройки -> Параметры

Меню параметры 1С

2. В окне для параметра «Отладка в текущем сеансе» выбираем вариант «Разрешена» с нужным протоколом.

Настройка отладки в клиенте 1С

Если выбираем протокол HTTP, то в поле «Сервер отладки» так же указываем имя компьютера и порт на котором запущен сервер отладки HTTP.

Параметры отладки клиента по HTTP

Проверка работы отладки

В конфигураторе в главном меню выбираем пункт Отладка -> Подключение. В окне должны отобразиться доступные предметы отладки.

Выбираем сеанс для отладки, нажимаем кнопку «Подключить». Закрываем окно, ставим точку останова в коде и запускаем на выполнение данный код. Если отладчик останавливается на точке останова то миссия по настройке отладки выполнена.