- Отладка на сервере 1С на Linux
- Настройка отладки по протоколу TCP
- Настройка отладки по протоколу HTTP
- Включение HTTP-отладки на сервере 1C
- Поверка работы HTTP сервера отладки
- Настройка параметров базы данных для подключения к серверу отладки по HTTP
- Настройка клиентского приложения для отладки
- Проверка работы отладки
- Отладка 1с linux сервера
- Отладка 1с linux сервера
- Отладка 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с linux сервера
Сервер 1С у меня на Линукс-сервере, клиент запускаю на windows.
1. Как отличить, запущен ли сервер 1С в режиме отладки или нет
После того как из конфигуратора запустили отладку (f5). Смотрим «Отладка» -> «Подключение».
Если ни в «Доступных предметах отладки», ни в «Подключенных предметах отладки» нет предмета с типом «Сервер», то значит сервер 1с запущен НЕ в режиме отладки (debug):
2. Ели сервер 1С запущен в режиме отладки но при начале отладки (клавиша F5) предмет отладки с типом «Сервер» самостоятельно не попадает в «Подключенные предметы отладки», то в моем случае были проблемы с ненастроеным брандмауэром.
Причем если я нажимал кнопку «Подключить», то предмет отладки «Сервер» из «Доступных предметов отладки» перемещался в «Подключенные предметы отладки», но точки останова на сервере НЕ работали:
3. После того как отключил брандмауэр, при начале отладки (f5) в «Подключенные предметы отладки» автоматически попал предмет с типом «Сервер», и точки останова НаСервере стали срабатывать :)))
Еще один важный момент: для того, чтобы отладка заработала, отключение брандмауэра реально помогло на платформе 8.3 (8.3.5.1383) .
Источник
Отладка 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):
Возможно (не подтверждено), что еще потребуется по кнопке «Автоматическое подключение» сделать следующую настройку:
Источник
Отладка 1С, развернутой на Linux серере
По умолчанию в скрипте демона написано так:
#SRV1CV8_DEBUG=
если делаю так:
SRV1CV8_DEBUG=1
демон не запускается
Сделал так:
#SRV1CV8_DEBUG=1
взлетел
в документации написано, что надо привести к такому виду:
SRV1CV8_DEBUG=1
так как правильно включить режим отладки?
а как вы делаете?
(4) pumbaE, там, что я написал.
Сервер как «демон» ОС Linux
Если в отладочный режим необходимо перевести сервер «1С:Предприятия» работающего в режиме «демона» в ОС Linux, то необходимо выполнить следующие операции:
1. Остановить сервер «1С:Предприятия».
2. В конфигурационном файле srv1cv83 установить значение параметра SRV1CV8_DEBUG в значение 1.
3. Сохранить конфигурационный файл.
4. Запустить сервер «1С:Предприятия».
(6) pumbaE, странно почему у меня не стартует 🙁
и еще вопрос в режиме отладки можно все время работать серверу или на время отладки включать?
(7) Shaka13, в боевом режиме отключен, на сервере для разработки включен. (на экземпляре тестовог, dev сервера)
p.s: добавьте вручную ключ -debug
(2) pumbaE, сейчас столкнулся с такой же проблемой. Нашел решение тут: http://its.1c.ru/db/v837doc#bookmark:adm:TI000000417
Проблема заключалась в том, что для RPM-системы нужно править не скрипт (/etc/init.d/srv1cv83), а конфигурационный файл, который находится тут /etc/sysconfig/srv1cv83
Во многих источниках пишут про конфигурационный файл, а где его искать не указывают. Мне, как новичку в linux, пришлось потратить время.
P.S. Проверить с какими параметрами запущен сервер 1с в centos можно так: ps aux | grep 1c
Сервер как «демон» ОС Linux
Если в отладочный режим необходимо перевести сервер «1С:Предприятия» работающего в режиме «демона» в ОС Linux, то необходимо выполнить следующие операции:
1. Остановить сервер «1С:Предприятия».
Копировать в буфер обмена
/etc/init.d/srv1cv83 stop
2. В конфигурационном файле srv1cv83 установить значение параметра SRV1CV8_DEBUG в значение 1.
Копировать в буфер обмена
SRV1CV8_DEBUG=1
3. Сохранить конфигурационный файл.
4. Запустить сервер «1С:Предприятия».
Копировать в буфер обмена
/etc/init.d/srv1cv83 start
Как писали в (10) линукс установка 1С имеет несколько вариаций, в отличии от винды.
Конфигурационный файл /etc/sysconfig/srv1cv83 (для RPM-системы) используется для задания параметров запуска агента сервера «1С:Предприятия» с помощью скрипта /etc/init.d/srv1cv83. Если установка выполнялась для DEB-системы, то нижеперечисленные параметры следует редактировать в файле /etc/init.d/srv1cv83.
ВНИМАНИЕ! Данный конфигурационный файл используется только в случае запуска сервера «1С:Предприятия» в операционной системе Linux.
С помощью этого конфигурационного файла можно настраивать следующие параметры:
Путь к файлу закрытого ключа Kerberos.
Каталог, в котором будут расположены служебные файлы кластера серверов (в том числе список кластеров и список информационных баз кластера).
Номер главного порта агента кластера. Этот порт используется агентом кластера для обращения к центральному серверу. Порт агента кластера также указывается в качестве сетевого порта рабочего сервера.
Номер сетевого порта кластера, создаваемого по умолчанию при первом запуске ragent.
Диапазоны сетевых портов для динамического выбора. Из них выбираются служебные порты процессов кластера при невозможности их выбора из настроек соответствующего рабочего сервера.
Запуск в режиме отладки:
● 0 – без режима отладки (по умолчанию);
● 1 – в режиме отладки.
Отладка возможна только по протоколу TCP/IP. Отладка по протоколу HTTP в данном режиме запуска не поддерживается.
Уровень безопасности соединений;
● 0 – выключено (по умолчанию);
● 1 – установка соединения;
Период проверки системы отслеживания разрыва соединений, миллисекунды (см. здесь).
Значение по умолчанию: 1 000.
Таймаут проверки системы отслеживания разрыва соединений, миллисекунды (см. здесь).
Значение по умолчанию: 5 000.
# ps aux | grep 1c
usr1cv8 932 0.3 1.0 1035216 41076 ? Ssl окт26 11:04 /opt/1C/v8.3/x86_64/ragent -daemon -debug
usr1cv8 940 1.2 4.5 2113244 183856 ? Sl окт26 38:02 /opt/1C/v8.3/x86_64/rmngr -port 1541 -host app83-6 -range 1560:1591 -debug -tcp -clstid 82bf8002-a8cd-11e6-1c87-000c29b4514e
usr1cv8 25852 7.8 23.4 2594416 952852 ? Sl 18:16 4:01 /opt/1C/v8.3/x86_64/rphost -range 1560:1591 -reghost app83-6 -regport 1541 -pid 2c9c9268-bbe2-11e7-7c90-000c29b4514e -debug -tcp
root 27309 0.0 0.0 12756 2240 pts/0 S+ 19:07 0:00 grep 1c
root@app83-6:
Отладка запускается (Linux Mint, 1С:Предприятие 8.3.14.1779), но на первой же точке останова блокируются события мышки. Даже окно конфигуратора не передвинуть !
Но клавиатурные события отрабатываются, кнопки нажимаются.
Если нажать F10 (перейти к следующей инструкции), конфигуратор «размораживается», окно можно двигать.
А если, например, Shift-F9 — вызывается окно вычисления выражений, но текстового курсора нет, поскольку «мышка сдохла».
Пока разработку в среде 1С по Linux не могу вести из-за двух вещей, которые «бесят» — проблема с отладкой и отсутствие аналога консоли администрирования. Управлять списком баз на сервере 1С под Linux в командной
строке через ras/rac то еще удовольствие. Дополнительная машина под Windows для администрирования баз — это «костыль». Пока такой вариант использовал:
Сервер 1С + PostgreSQL — под Linux, там же VitualBox
В среде Virtual Box + Windows 10 установлен Сервер 1С, клиент 1С и консоль администрирования.
USB ключик у меня один (на нем лицензия минисервера + клиента 1С).
Новые базы создаю под Linux из 1С. Потом эти же базы в консоли для Win10 подключаю к серверу 1С, который под Win 10. В результате одна и та же база может быть подключена к серверу 1С Linux и под Windows.
Базу можно из консоли удалить. Останутся только «хвосты» на сервере 1С под Linux. Вот их и придется
потом отрубать ручками.
Костыли, такие костыли . если есть у кого рецепты получше, вразумите пожалуйста.
А в остальном, под Linux гораздо приятнее. Компьютер без толку «не молотит». Это
отчетливо слышно. Под Linux вентилятор на системном блоке не слышно, под Win 10 гудит.
А настройка скорости работы вентилятора от температуры датчика — в UEFI, т.е. вне ОС.
Источник