- Отладка на сервере 1С на Linux
- Настройка отладки по протоколу TCP
- Настройка отладки по протоколу HTTP
- Включение HTTP-отладки на сервере 1C
- Поверка работы HTTP сервера отладки
- Настройка параметров базы данных для подключения к серверу отладки по HTTP
- Настройка клиентского приложения для отладки
- Проверка работы отладки
- Включение отладки на сервере 1С на ОС Linux
- Отладка на сервере линукс
- 1С. Отладка на сервере 1С:Предприятие
- Задача
- Включение отладки в Windows
- Включение отладки в Linux
- Как запустить сервер 8.3.18хх и выше в режиме отладки в 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С на ОС Linux
При установке сервера 1С на ОС Linux может возникнуть проблема, что там необходимо включить отладку. По понятным причинам делается это совершенно не так, как на ОС Windows.
Данный пример приведен для дистрибутива Debian 9. В комплект дистрибутивов Debian входят хоть и не самые последние версии приложений, но зато подбираются самые стабильные и надежные релизы. Работать будем через консоль через программу putty. В качестве текстового редактора я предпочитаю редактор nano, он достаточно прост.
Для включения отладки необходимо отредактировать файл /etc/init.d/srv1cv83. Открывать необходимо с полными правами, для получения полных прав используется команда:
Обращаю внимание, что при вводе пароля визуально ничего не происходит. Для редактирования файла вводим команду:
Откроется окно редактора. Нажимаем сочетание клавиш Ctrl+W, появляется строка поиска, набираем
Для сохранения изменений нажимаем Ctrl+X, набираем Y и нажимаем Enter. После этого необходимо перезагрузить службу
services srv1cv83 restart
Если все сделали правильно, то сервер будет перезапущен, и будет включена возможность отладки.
Отладка на сервере линукс
Коллеги, добрый день.
Не получается включить отладку на линуксе.
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 изменения не остаются.
1С. Отладка на сервере 1С:Предприятие
Периодически требуется отладка на сервере 1С, работаешь в типовом решении или же в измененном. По умолчанию отладка не включена, разбираемся со включением.
Задача
Есть два сервера, один по управлением ОС семейства Windows, другой под управлением ОС Debian. Необходимо на обоих включить отладку на сервере.
Включение отладки в Windows
Первым делом зайдем в службы и остановим службу сервера 1С:Предприятие.
Далее необходимо открыть редактор реестра. Это можно сделать нажав сочетание клавиш Win+R и введя в появившемся окне regedit. В редакторе реестра необходимо развернуть дерево до ветки HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent.
В правой части редактора отобразятся свойства текущего раздела, нам необходимо свойство ImagePath. Его значение должно быть примерно таким:
"C:\Program Files\1cv8\8.3.10.2580\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Нам необходимо добавить параметр включения отладки -debug. Многие добавляют его в самый конец, но я предпочитаю вставлять перед параметром -d
"C:\Program Files\1cv8\8.3.10.2580\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\Program Files\1cv8\srvinfo"
Теперь остается сохранить изменения и запустить службу, отладка должна работать.
Включение отладки в Linux
Как и для Windows остановим службу сервера 1С
Настройки с которыми запускается сервер хранятся в файле /etc/init.d/srv1cv83, открываем для редактирования
Находим раздел параметров отладки и для параметра SRV1CV8_DEBUG устанавливаем значение 1. В итоге получаем следующее:
# 1C:Enterprise server configuration debug mode # 0 - default - off # 1 - on # SRV1CV8_DEBUG=1
Сохраняем файл и запускаем службу
Остается проверить работу отладки, для этого я создал внешнюю обработку с пустой формой в которой установил точку останова в событии ПриСозданииНаСервере()
В итоге отладка работает, и все операции заняли не более 10 минут.
Как запустить сервер 8.3.18хх и выше в режиме отладки в Linux.
Для того, чтобы на сервере была доступна отладка, необходимо запустить его в ключом –debug. Для этого сначала остановим сервер «1С:Предприятие»:
Не редактируйте параметры запуска сервера в процессе его работы, это может привести к ошибкам при его перезапуске.
Маленькое отступление: в последних версиях 1С по инструкции после установки сервера, необходимо скопировать файлы srv1cv83 и srv1cv83.conf из папки /opt/1cv8/x86_64/ в /etc/rc.d/init.d и /etc/sysconfig соответственно.
Этот момент приводит к тому, что режим «debug» может не включаться. Поэтому переименовываем файл конфигурации запуска /etc/sysconfig/srv1cv83.conf в /etc/sysconfig/srv1cv83:
mv /etc/sysconfig/srv1cv83.conf /etc/sysconfig/srv1cv83
Теперь необходимо отредактировать параметры его запуска в конфигурационном файле srv1cv83 (в данном примере с использованием редактора vim):
Находим в редактируемом файле строку SRV1CV8_DEBUG= , убираем в начале этой строки символ комментария # и устанавливаем значение переменной SRV1CV8_DEBUG в 1:SRV1CV8_DEBUG=1
Сохраняем изменения и выходим из файла.
Перезапускаем сервер «1С:Предприятия 8»:
usr1cv8 6429 0.5 0.0 213556 55552 ? Ssl 07:37 1:14 /opt/1cv8/x86_64/8.3.18.1334/ragent -daemon -debug
usr1cv8 6429 1 0 07:37 ? 00:01:14 /opt/1cv8/x86_64/8.3.18.1334/ragent -daemon -debug