- Отладка на сервере 1С на Linux
- Настройка отладки по протоколу TCP
- Настройка отладки по протоколу HTTP
- Включение HTTP-отладки на сервере 1C
- Поверка работы HTTP сервера отладки
- Настройка параметров базы данных для подключения к серверу отладки по HTTP
- Настройка клиентского приложения для отладки
- Проверка работы отладки
- 1С. Отладка на сервере 1С:Предприятие
- Задача
- Включение отладки в Windows
- Включение отладки в Linux
- Как включить отладку на сервере 1С
- Включаем отладку на сервере 1С в Windows
- Включаем отладку по протоколу HTTP на сервере
- Включаем отладку на сервере 1С в Ubuntu
- Включение отладки 1с linux
Отладка на сервере 1С на Linux
Включение отладки на 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С на один компьютер можно почитать тут.
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 .
В случае, если запуск сервера отладки осуществлялся на порту отличном от порта по умолчанию, то у процесса ragent и dbgs также должен присутствовать ключ с номером порта как на картинке ниже:
Настройка параметров базы данных для подключения к серверу отладки по HTTP
После запуска сервера http отладки, нужно настроить для работы с ним 1С Конфигуратор. Для этого в конфигураторе:
- Заходим в главном меню Сервис -> Параметры. Там ищем закладку «Отладка».
- На закладке «Отладка» делаем настройки:
- Протокол отладки — выбираем параметр «Отладка по протоколу HTTP»
- Сервер отладки у нас запущен на той же машине что и менеджер кластера, поэтому выбираем «Использовать сервер отладки кластера»
- Если конфигуратор запущен для целевой базы, то ставим переключатель на «Имя текущей информационной базы». В нашем случае база с именем zup_test_1. Если хотим подключиться для отладки к другой базе, то ставим переключатель на «Использовать указано имя текущей информационной базы» и вводим имя целевой базы как оно указано в реестре кластера.
- Вводим пароль доступа к базе, если хотим подключиться к другой базе, не той что открыта в конфигураторе.
3. Нажимаем кнопку «Перезапустить» чтобы применить настройки.
Настройка клиентского приложения для отладки
Если вы используете отладку только по протоколу TCP, то для отладки клиентских сеансов всех вышеперечисленных настроек сервера 1С можно не выполнять. Для того чтобы клиентский сеанс конкретного пользователя стал доступен для отладки необходимо сделать следующие шаги.
1. В режиме 1С Предприятие заходим в меню Настройки -> Параметры
2. В окне для параметра «Отладка в текущем сеансе» выбираем вариант «Разрешена» с нужным протоколом.
Если выбираем протокол HTTP, то в поле «Сервер отладки» так же указываем имя компьютера и порт на котором запущен сервер отладки HTTP.
Проверка работы отладки
В конфигураторе в главном меню выбираем пункт Отладка -> Подключение. В окне должны отобразиться доступные предметы отладки.
Выбираем сеанс для отладки, нажимаем кнопку «Подключить». Закрываем окно, ставим точку останова в коде и запускаем на выполнение данный код. Если отладчик останавливается на точке останова то миссия по настройке отладки выполнена.
Источник
1С. Отладка на сервере 1С:Предприятие
Периодически требуется отладка на сервере 1С, работаешь в типовом решении или же в измененном. По умолчанию отладка не включена, разбираемся со включением.
Задача
Есть два сервера, один по управлением ОС семейства Windows, другой под управлением ОС Debian. Необходимо на обоих включить отладку на сервере.
Включение отладки в Windows
Первым делом зайдем в службы и остановим службу сервера 1С:Предприятие.
Далее необходимо открыть редактор реестра. Это можно сделать нажав сочетание клавиш Win+R и введя в появившемся окне regedit. В редакторе реестра необходимо развернуть дерево до ветки HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent.
В правой части редактора отобразятся свойства текущего раздела, нам необходимо свойство ImagePath. Его значение должно быть примерно таким:
Нам необходимо добавить параметр включения отладки -debug. Многие добавляют его в самый конец, но я предпочитаю вставлять перед параметром -d
Теперь остается сохранить изменения и запустить службу, отладка должна работать.
Включение отладки в Linux
Как и для Windows остановим службу сервера 1С
Настройки с которыми запускается сервер хранятся в файле /etc/init.d/srv1cv83, открываем для редактирования
Находим раздел параметров отладки и для параметра SRV1CV8_DEBUG устанавливаем значение 1. В итоге получаем следующее:
Сохраняем файл и запускаем службу
Остается проверить работу отладки, для этого я создал внешнюю обработку с пустой формой в которой установил точку останова в событии ПриСозданииНаСервере()
В итоге отладка работает, и все операции заняли не более 10 минут.
Источник
Как включить отладку на сервере 1С
Эта статья рассказывает о том, как включить отладку на сервере 1С 8.1, 8.2 и 8.3 в операционных системах Windows и Ubuntu.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Включаем отладку на сервере 1С в Windows
Запускаем редактор реестра, выполнив команду regedit (при помощи Win+R или Пуск->Выполнить).
Запускаем Regedit
Затем, в редакторе реестра открываем:
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
Изменяем ImagePath
И наконец, перезапускаем службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» (названием может отличаться в зависимости от версии сервера).
Перезапускаем агент сервера 1С
Готово — теперь отладка на сервере 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.
Источник
Включение отладки 1с linux
Имеется следующая проблема: при разработке в режиме клиент-сервер (тонкий клиент), в дебаггере 1С не работает вход в процедуры, выполняемые на сервере.
Включить отладку можно следующим способом.
Вначале нужно на сервере проверить, с какими флагами запущены сервиса 1С. Сервис srv1cv82 запускает три процесса. Посмотреть их можно командой:
# ps aux | grep 1c
usr1cv82 2952 0.0 0.3 114380 15464 ? Ssl Июл06 29:33 /opt/1C/v8.2/i386/ragent -daemon
usr1cv82 2986 0.1 0.5 298612 24380 ? Sl Июл06 149:53 /opt/1C/v8.2/i386/rmngr -port 1541 -range 1560:1591
usr1cv82 3108 0.0 3.7 485660 154968 ? Sl Июл06 50:24 /opt/1C/v8.2/i386/rphost -range 1560:1591 -reghost energobase -regport 1541 -pid 9d4225ae-9e32
Видно, что процесс ragent запущен с параметром -daemon . И нужно добиться того, чтобы этот сервис запускался с параметром -debug .
Поиск по сети дал следующую информацию: дебаг на серверной части под linux можно запустить, установив в скрипте запуска (/etc/init.d/srv1cv81) следующую строку:
Внимание! Во многих Linux-дистрибутивах редактировать файл скрипта запуска сервиса нельзя в тот момент, когда сервис запущен. Поэтому вначале надо остановить сервис сервера 1С:
service srv1cv82 stop
затем надо отредактировать файл запуска /etc/init.d/srv1cv81, затем включить сервис сервера 1С:
service srv1cv82 start
После чего можно проверить, с какими опциями запустился процесс ragent :
# ps aux | grep 1c
usr1cv82 11521 0.0 0.3 105708 14140 ? Ssl 14:03 0:00 /opt/1C/v8.2/i386/ragent -daemon -debug
usr1cv82 11524 0.5 0.5 261168 24624 ? Sl 14:03 0:00 /opt/1C/v8.2/i386/rmngr -port 1541 -range 1560:1591 -debug
usr1cv82 11539 0.1 0.5 122968 24236 ? Sl 14:03 0:00 /opt/1C/v8.2/i386/rphost -range 1560:1591 -reghost energobase -regport 1541 -pid 9d4225ae-9e32
Видно, что у процесса ragent появилсь опция -debug .
Далее нужно сделать настройки в самом конфигураторе.
В параметрах надо включить две галки:
И в настройке предметов отладки надо проверить, чтобы был подключен сервер в качестве предмета отладки. «Отладка» — «Подключение» — «Подключенные предметы отладки». Эта настройка делается в момент, когда отладка запущена (F5):
Возможно (не подтверждено), что еще потребуется по кнопке «Автоматическое подключение» сделать следующую настройку:
Источник