- Отладка на сервере 1С на Linux
- Настройка отладки по протоколу TCP
- Настройка отладки по протоколу HTTP
- Включение HTTP-отладки на сервере 1C
- Поверка работы HTTP сервера отладки
- Настройка параметров базы данных для подключения к серверу отладки по HTTP
- Настройка клиентского приложения для отладки
- Проверка работы отладки
- Как включить отладку на сервере 1С
- Включаем отладку на сервере 1С в Windows
- Включаем отладку по протоколу HTTP на сервере
- Включаем отладку на сервере 1С в Ubuntu
- Отладка на сервере линукс
- Как включить Debug в 1с 8.3 на Linux?
Отладка на сервере 1С на Linux
Включение отладки на Linux для сервера 1С выполняется как и в Windows с помощью ключа -debug в строке запуска службы. Различие только в способе указания данного ключа. Как это делается в Windows можно посмотреть здесь. О том как запустить отладку 1С по протоколу TCP или HTTP на Linux читаем ниже.
Настройка отладки по протоколу TCP
Следует сразу отметить, что для отладки клиентских сеансов по протоколу TCP, никаких настроек на сервере делать не нужно (о настройке клиента ниже).
Запуск сервера 1С с ключом -debug нужен только для отладки серверных сеансов. Так же не стоит запускать сервер production в режиме отладки, так как это снижает его производительность.
Для запуска агента сервера 1С с ключом -debug надо выполнить следующие шаги:
1. Зайдем на сервер 1С под пользователем root:
Настройка отладки по протоколу HTTP
Если при отладка по tcp ваш компьютер (отладчик) и предмет отладки (например серверный сеанс 1С) обмениваются по сети напрямую, то отладка в 1С по протоколу http организована по трех-звеньевой схеме. Дополнительно запускается сервер отладки (процесс dbgs), который становится посредником между отладчиком и предметом отладки. Теперь все потоки информации идут только через исходящие соединения к серверу отладки. Данный вариант позволяет вести отладку в условиях когда отладчик и предмет отладки разделяют маршрутизаторы, сетевые экраны с NAT и фаерволы блокирующие входящие TCP соединения от предмета отладки к отладчику.
Включение HTTP-отладки на сервере 1C
Поверка работы HTTP сервера отладки
Должен быть запущен процесс сервера отладки dbgs, а также у процесса ragent должен быть отображены ключи запуска -debug и -http .
В случае, если запуск сервера отладки осуществлялся на порту отличном от порта по умолчанию, то у процесса ragent и dbgs также должен присутствовать ключ с номером порта как на картинке ниже:
Настройка параметров базы данных для подключения к серверу отладки по HTTP
- Заходим в главном меню Сервис -> Параметры. Там ищем закладку «Отладка».
- На закладке «Отладка» делаем настройки:
- Протокол отладки — выбираем параметр «Отладка по протоколу HTTP»
- Сервер отладки у нас запущен на той же машине что и менеджер кластера, поэтому выбираем «Использовать сервер отладки кластера»
- Если конфигуратор запущен для целевой базы, то ставим переключатель на «Имя текущей информационной базы». В нашем случае база с именем zup_test_1. Если хотим подключиться для отладки к другой базе, то ставим переключатель на «Использовать указано имя текущей информационной базы» и вводим имя целевой базы как оно указано в реестре кластера.
- Вводим пароль доступа к базе, если хотим подключиться к другой базе, не той что открыта в конфигураторе.
3. Нажимаем кнопку «Перезапустить» чтобы применить настройки.
Настройка клиентского приложения для отладки
Если вы используете отладку только по протоколу TCP, то для отладки клиентских сеансов всех вышеперечисленных настроек сервера 1С можно не выполнять. Для того чтобы клиентский сеанс конкретного пользователя стал доступен для отладки необходимо сделать следующие шаги.
1. В режиме 1С Предприятие заходим в меню Настройки -> Параметры
2. В окне для параметра «Отладка в текущем сеансе» выбираем вариант «Разрешена» с нужным протоколом.
Если выбираем протокол HTTP, то в поле «Сервер отладки» так же указываем имя компьютера и порт на котором запущен сервер отладки HTTP.
Проверка работы отладки
В конфигураторе в главном меню выбираем пункт Отладка -> Подключение. В окне должны отобразиться доступные предметы отладки.
Выбираем сеанс для отладки, нажимаем кнопку «Подключить». Закрываем окно, ставим точку останова в коде и запускаем на выполнение данный код. Если отладчик останавливается на точке останова то миссия по настройке отладки выполнена.
Как включить отладку на сервере 1С
Эта статья рассказывает о том, как включить отладку на сервере 1С 8.1, 8.2 и 8.3 в операционных системах Windows и Ubuntu.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Включаем отладку на сервере 1С в Windows
Запускаем редактор реестра, выполнив команду regedit (при помощи Win+R или Пуск->Выполнить).
Затем, в редакторе реестра открываем:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\1C:Enterprise 8.3 Server Agent (x86-64)
Для версий 8.1 и 8.2 делаем тоже самое, только последняя часть пути будет отличаться в зависимости от версии сервера.
После этого в параметре ImagePath (подчеркнут на картинке сверху) добавляем -debug, например было:
«C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»
«C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug
И наконец, перезапускаем службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» (названием может отличаться в зависимости от версии сервера).
Готово — теперь отладка на сервере 1С должна заработать.
Включаем отладку по протоколу HTTP на сервере
Описанные выше операции позволяют включить отладку на сервере по протоколу TCP/IP (это вариант по умолчанию) и в подавляющем большинстве случаев это как раз то, что нужно.
Если же требуется отладка по протоколу HTTP, то нужно сделать все тоже самое, только параметр ImagePath в реестре будет выглядеть по другому.
Если сервер отладки будет запускаться кластером серверов, то к ImagePath нужно добавить -http, например:
«C:\Program Files\1cv8\8.3.13.1513\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug -http
Если используется удаленный сервер отладки, то нужно дополнительно указать адрес этого сервера, порт и пароль (если требуется) добавляя соответствующие параметры — -debugServerAddr, -debugServerPort и -debugServerPwd, например:
«C:\Program Files\1cv8\8.3.13.1513\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug -http -debugServerAddr 192.168.0.170 -debugServerPort 4000
Отладка по протоколу HTTP доступна начиная с версии технологической платформы 8.3.7.
Подробнее об отладке по протоколу HTTP и о сервере отладки можно прочитать в следующей статье серии.
Включаем отладку на сервере 1С в Ubuntu
sudo service srv1cv83 stop
После этого открываем от имени суперпользователя файл /etc/init.d/srv1cv83 и находим в нем строку:
И приводим ее к такому виду:
Затем запускаем сервер вновь:
sudo service srv1cv83 start
В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:
- «Устанавливать режим разрешения отладки»
- «Начинать отладку при запуске»
О том, как установить сервер 1С на Ubuntu 16.04/18.04 можно прочитать в этой статье.
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 4, средняя оценка: 5,00 из 5)
Отладка на сервере линукс
Коллеги, добрый день.
Не получается включить отладку на линуксе.
5.15.0-48-generic #54-Ubuntu SMP Fri Aug 26 13:26:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
8.3.21.1484
Делал так:
https://its.1c.ru/db/v8321doc#bookmark:cs:TI000000123
cat /opt/1cv8/x86_64/8.3.21.1484/srv1cv8-8.3.21.1484\@.service
[Unit]
Description=1C:Enterprise Server 8.3 (8.3.21.1484) (%I)
Requires=network.target
[Service]
# 1C:Enterprise server keytab file.
# default — usr1cv83.keytab file in 1C:Enterprise server
# installation directory
#
Environment=SRV1CV8_KEYTAB=/opt/1cv8/x86_64/8.3.21.1484/usr1cv8.keytab
# Cluster agent main port
Environment=SRV1CV8_PORT=1540
# Cluster main port for default cluster.
# This port is used by the cluster agent to address
# the central server. Cluster port is also specified
# as the IP port of the working server.
Environment=SRV1CV8_REGPORT=1541
# Port range for connection pool
# example values:
# 45:49
# 45:67,70:72,77:90
Environment=SRV1CV8_RANGE=1560:1591
# 1C:Enterprise server configuration debug mode
# empty value — off
# -debug — on
Environment=SRV1CV8_DEBUG=-debug
В документации указано, что настраивать надо так:
Для того, чтобы отредактировать параметры какого-либо экземпляра кластера серверов, необходимо использовать следующую команду:
systemctl edit srv1cv8-A.B.C.D@instanceName
Когда редактирую таким образом, при повторном запуске systemctl edit srv1cv8-A.B.C.D@instanceName изменения не остаются.
Включение отладки на debian 10 и сервере 1с 8.3.18.1363
Правим файл /etc/init.d/srv1cv83
Закомментированного параметра SRV1CV8_DEBUG=1 нет, добавляем в начале файла.
В добавляем отладку по http
[ «x$SRV1CV8_DEBUG» == «x1″ ] && cmdline=»$cmdline -debug -http»
обновляем настройки сервисов
systemctl daemon-reload
Перезапускаем кластер
systemctl restart ras
или перезапускаем сервер
reboot
Включаем от отладку в конфиураторе
Если нужно отключить отладку — комментируем (или удаляем) первую строку, обновляем сервисы и рестартим сервер.
Вопрос решен включением отладки по http:
cat /opt/1cv8/x86_64/8.3.21.1484/srv1cv8-8.3.21.1484\@.service
[Unit]
Description=1C:Enterprise Server 8.3 (8.3.21.1484) (%I)
Requires=network.target
[Service]
# 1C:Enterprise server keytab file.
# default — usr1cv83.keytab file in 1C:Enterprise server
# installation directory
#
Environment=SRV1CV8_KEYTAB=/opt/1cv8/x86_64/8.3.21.1484/usr1cv8.keytab
# Cluster agent main port
Environment=SRV1CV8_PORT=1540
# Cluster main port for default cluster.
# This port is used by the cluster agent to address
# the central server. Cluster port is also specified
# as the IP port of the working server.
Environment=SRV1CV8_REGPORT=1541
# Port range for connection pool
# example values:
# 45:49
# 45:67,70:72,77:90
Environment=SRV1CV8_RANGE=1560:1591
# 1C:Enterprise server configuration debug mode
# empty value — off
# -debug — on
Environment=SRV1CV8_DEBUG=-debug-http
«.
# 1C:Enterprise server configuration debug mode
# empty value — off
# -debug — on
Environment=SRV1CV8_DEBUG=-debug
. »
Конфиг верный. У меня на астре служба не запускалась, после изменения конфига. А после ребута запустилась.
Если редактировал через nano то там можно при сохранении, сохраненить не в тот файл. Попробуй из mc отредактировать.
«Когда редактирую таким образом, при повторном запуске systemctl edit srv1cv8-A.B.C.D@instanceName изменения не остаются.
Как включить Debug в 1с 8.3 на Linux?
Добрый день!
не могу настроить дебаг для 1с 8.3 Предприятие.
запускается дебаг только /opt/1C/v8.3/x86_64/ragent -daemon — debug
не могу сделать такое:
Правим скрипт запуска/остановки:
#mcedit /etc/init.d/srv1cv83
находим строку «SRV1CV8_DEBUG $SRV1CV8_DEBUG»
echo «$cmdline» | grep «\-debug» >/dev/null && debugFlag=»1″
что делать? запуск просто как демон не красивое решение, скажите чтоб было всё замечательно.
Оценить 1 комментарий
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\
Параметр ImagePath — в строку запуска добавляем параметр -debug:
«C:\Program Files\1cv8Х\Х.Х.Х.Х\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 –debug -d «C:\Program Files (x86)\1cv82\srvinfo»
Для Linux:
/etc/sysconfig/srv1cv83
Добавляем (раскомментируем) строку:
SRV1CV8_DEBUG=1
Серьезно? Вы просто скопировали мой совет раскомментировать строчку в скрипте с дебагингом и вас выбрали как правильный ответ? Конечно, хозяин вопроса — барин.
Dementor: Уважаемый, заметьте что файлик лежит в /etc/sysconfig/srv1cv83 а не в /etc/init.d/srv1cv83, хоть и одинаково называющийся. именно в сусконфиге я нашёл строчку SRV1CV8_DEBUG.
вы конечно извините, но слова «Еще момент — ключ SRV1CV8_DEBUG в конфиге по умолчанию закомментирован. Вы точно убрали символ комментария перед ним? » — это и есть конфиг который находится в /etc/sysconfig/srv1cv83 ? если так то прошу извинить, я не понял вас сразу.
Gloomy_Nort: не заметил, что вы и есть автор вопроса. С каталогами все просто. Что я, что большинство других пользователей 1С под Linux, используем дистрибутивы на базе Debian (в подавляющем большинстве Ubuntu Server 12/14 LTS), в которых скрипт находится именно в каталоге init.d (каталога sysconfig там в принципе не существует).
Поскольку вы являетесь опытным пользователем системы SUSE , то вы должны были сами знать про каталог /etc/sysconfig . Ну или хотя бы упомянуть о названии своего дистрибутива в описании вопроса.