Отладка на сервере 1С на Linux
Включение отладки на Linux для сервера 1С выполняется как и в Windows с помощью ключа -debug в строке запуска службы. Различие только в способе указания данного ключа. Как это делается в Windows можно посмотреть здесь. О том как запустить отладку 1С по протоколу TCP или HTTP на Linux читаем ниже.
Настройка отладки по протоколу TCP
Следует сразу отметить, что для отладки клиентских сеансов по протоколу TCP, никаких настроек на сервере делать не нужно (о настройке клиента ниже).
Запуск сервера 1С с ключом -debug нужен только для отладки серверных сеансов. Так же не стоит запускать сервер production в режиме отладки, так как это снижает его производительность.
Для запуска агента сервера 1С с ключом -debug надо выполнить следующие шаги:
1. Зайдем на сервер 1С под пользователем root:
1 |
sudo su root |
2. Остановим службу сервера 1C. Здесь и далее имя демона сервера 1С указано то, которое по умолчанию назначается при типовой установке. Имя службы тестового сервера 1С может отличаться, например, если вы установили второй экземпляр сервера и назвали его по другому:
1 |
service srv1cv83 stop |
3. Откроем на редактирование конфигурационный файл /etc/sysconfig/srv1cv83. Если вы включаете отладку на тестовом экземпляре сервере 1С на той же машине, то нужно редактировать конфигурационный файл в каталоге тестового сервера (примерное имя каталога может быть таким /etc/sysconfig/srv1cv83.14-1857). Подробней про установку второго сервера 1С на один компьютер можно почитать тут.
1 |
vim /etc/sysconfig/srv1cv83 |
4. Ищем строку:
1 |
#SRV1CV8_DEBUG= |
5. Меняем ее на:
1 |
SRV1CV8_DEBUG=1 |
6. Запускаем службу сервера:
1 |
service srv1cv83 start |
Настройка отладки по протоколу HTTP
Если при отладка по tcp ваш компьютер (отладчик) и предмет отладки (например серверный сеанс 1С) обмениваются по сети напрямую, то отладка в 1С по протоколу http организована по трех-звеньевой схеме. Дополнительно запускается сервер отладки (процесс dbgs), который становится посредником между отладчиком и предметом отладки. Теперь все потоки информации идут только через исходящие соединения к серверу отладки. Данный вариант позволяет вести отладку в условиях когда отладчик и предмет отладки разделяют маршрутизаторы, сетевые экраны с NAT и фаерволы блокирующие входящие TCP соединения от предмета отладки к отладчику.
Включение HTTP-отладки на сервере 1C
Для запуска http отладки на сервере 1С Предприятия под ОС Linux сначала выполним настройки из предыдущего раздела «Настройка отладки по протоколу TCP», а затем выполним следующие шаги:
1. Открываем скрипт запуска сервера 1С /etc/init.d/srv1cv83 на редактирование (для второго экземпляра сервера 1С (тестового) меняем скрипт запуска именно тестового сервера):
1 |
vim /etc/init.d/srv1cv83 |
2. Найдем такую строку:
1 |
[ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug" |
Добавим в нее ключ -http в конце вот так:
1 |
[ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug -http" |
3. Процесс сервера отладки dbgs слушает по-умолчанию порт 1550. Если для отладки необходимо использовать другой порт, то строку необходимо модифицировать так (на примере порта 1650):
1 |
[ "x$SRV1CV8_DEBUG" == "x1" ] && cmdline="$cmdline -debug -http -debugserverport 1650" |
4. Сохраняем скрипт запуска и стартуем сервер 1C. Напоминаю, имя службы тестового сервера может отличаться:
1 |
service srv1cv83 start |
Поверка работы HTTP сервера отладки
Посмотрим запущенные процессы с фильтром по пользователю от имени которого запускается сервер 1С, например usr1cv8:
1 |
ps -fU usr1cv8 |
Должен быть запущен процесс сервера отладки dbgs, а также у процесса ragent должен быть отображены ключи запуска -debug и -http .
В случае, если запуск сервера отладки осуществлялся на порту отличном от порта по умолчанию, то у процесса ragent и dbgs также должен присутствовать ключ с номером порта как на картинке ниже:
Настройка параметров базы данных для подключения к серверу отладки по HTTP
После запуска сервера http отладки, нужно настроить для работы с ним 1С Конфигуратор. Для этого в конфигураторе:
- Заходим в главном меню Сервис -> Параметры. Там ищем закладку «Отладка».
- На закладке «Отладка» делаем настройки:
- Протокол отладки — выбираем параметр «Отладка по протоколу HTTP»
- Сервер отладки у нас запущен на той же машине что и менеджер кластера, поэтому выбираем «Использовать сервер отладки кластера»
- Если конфигуратор запущен для целевой базы, то ставим переключатель на «Имя текущей информационной базы». В нашем случае база с именем zup_test_1. Если хотим подключиться для отладки к другой базе, то ставим переключатель на «Использовать указано имя текущей информационной базы» и вводим имя целевой базы как оно указано в реестре кластера.
- Вводим пароль доступа к базе, если хотим подключиться к другой базе, не той что открыта в конфигураторе.
3. Нажимаем кнопку «Перезапустить» чтобы применить настройки.
Настройка клиентского приложения для отладки
Если вы используете отладку только по протоколу TCP, то для отладки клиентских сеансов всех вышеперечисленных настроек сервера 1С можно не выполнять. Для того чтобы клиентский сеанс конкретного пользователя стал доступен для отладки необходимо сделать следующие шаги.
1. В режиме 1С Предприятие заходим в меню Настройки -> Параметры
2. В окне для параметра «Отладка в текущем сеансе» выбираем вариант «Разрешена» с нужным протоколом.
Если выбираем протокол HTTP, то в поле «Сервер отладки» так же указываем имя компьютера и порт на котором запущен сервер отладки HTTP.
Проверка работы отладки
В конфигураторе в главном меню выбираем пункт Отладка -> Подключение. В окне должны отобразиться доступные предметы отладки.
Выбираем сеанс для отладки, нажимаем кнопку «Подключить». Закрываем окно, ставим точку останова в коде и запускаем на выполнение данный код. Если отладчик останавливается на точке останова то миссия по настройке отладки выполнена.
Еще можно посмотреть
Похожие записи
- Подключение репозитория под ОС Linux
- Ошибка 1С:Предприятие «Потеряно соединение»
- НАСТРОЙКА PG_PROFILE ДЛЯ POSTGRESQL 1.
- Статистика PostgreSQL при работе с 1С:Предприятием
- Очистка кэша: серверного и клиентского для 1С:Предприятия
- Настройка непрерывного архивирования (point-in-time-recovery, PITR) в PostgresPro 11 Linux
- 1C тормозит и возникают ошибки. С чего начать расследование?
- Анализ технологического журнала 1С регулярными выражениями. От простого к сложному.
- Хранение файлов 1С в томах на nfs-шаре Linux
- Администрирование серверов 1С на Linux