Как запустить отладку на сервере 1С...
По умолчанию, при использовании клиент-серверной архитектуры 1С:Предприятие режим отладки кода 1С работает только на клиентской стороне. Серверные процедуры и функции не видны клиентской машине.
Чтобы включить использование отладки на сервере 1С, необходимо выполнить следующие действия:
1. Найти и остановить в диспетчере служб службу «Агент сервера 1С:Предприятия 8.3» (для версии 8.3).
2. Открыть редактор системного реестра. Можно воспользоваться командной строкой или инструментом меню Пуск – Выполнить… и командой regedit .
3. В реестре найти ветку:
- Для версии 1С 8.1
- Для версии 1С 8.2
- Для версии 1С 8.3
4. Изменить свойство ImagePath, добавить в конец строки директиву «-debug». Получится следующая строка свойства: «C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv8\srvinfo» –debug
После этого серверный код 1С можно смело проверять отладчиком и устанавливать точки останова везде, где требуется.
Задача разработчика 1С состоит не только в написании кода, но также в отслеживании и исправлении ошибок, построении оптимального алгоритма выполнения команд и оптимизации скорости работы, то есть отладки. Сделать это без использования функционала встроенного отладчика серверных процедур затруднительно.
Изначально на серверах 1С режим отладки отключен, поэтому разработчику придется проделать несложные манипуляции с настройками, чтобы получить возможность досконально проверить код.
Включение режима отладки на сервере для платформы 1С версии 8.2 и выше
Алгоритм включения отладки достаточно прост. Он не предполагает наличия глубоких знаний по архитектуре операционных систем и администрированию 1С. При этом все же следует быть очень внимательным, ведь работы по отладке выполняются непосредственно на сервере и с правами администратора. Поэтому, если не обладаете доскональными знаниями, строго следуйте алгоритму действий без импровизаций:
- Остановите через Диспетчер сервера службу «Агент сервера 1С:Предприятия». Если настройка проходит на рабочем сервере, то стоит позаботиться заранее об отсутствии пользователей 1С в базе;
- Запускайте редактор реестра системы путем нажатия «Пуск»-«Выполнить» или сочетания клавиш «Win»+«R». В открывшемся окне ввести строку «regedit»;
- В реестре необходимо найти пункт ;
- Среди параметров найти «ImagePath» и изменить его, добавив к существующему значению через пробел в конце «-debug»;
- Через Диспетчер сервера запустить службу, которую останавливали – «Агент сервера 1С:Предприятия».
Включение режима отладки на сервере для 1С версии 8.1
Если необходимо включить режим отладки на платформе 8.1, то алгоритм действий практически не меняется. Единственным изменением является местонахождение параметра пути «ImagePath». В версии 8.1 он располагается в разделе .
Разработчики 1С советуют включать отладочный режим исключительно для тестовых серверов, где и должен проходить отладку код. Причина этой рекомендации заключается в падении производительности при активации отладки на сервере. Если у вас много пользователей или мощность сервера оставляет желать лучшего, отнеситесь к этому совету, чтобы отладка не имела негативных последствий, внимательно.
Эта статья рассказывает о том, как включить отладку на сервере 1С 8.1, 8.2 и 8.3 в операционных системах Windows и Ubuntu.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
- Как включить отладку на сервере 1С
Включаем отладку на сервере 1С в Windows
Запускаем редактор реестра, выполнив команду regedit (при помощи Win+R или Пуск->Выполнить).
Подробнее об отладке по протоколу HTTP и о сервере отладки можно прочитать в следующей статье серии.
Включаем отладку на сервере 1С в Ubuntu
В начале становим сервер:
sudo service srv1cv83 stop
После этого открываем от имени суперпользователя файл /etc/init.d/srv1cv83 и находим в нем строку:
И приводим ее к такому виду:
Затем запускаем сервер вновь:
sudo service srv1cv83 start
В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:
- «Устанавливать режим разрешения отладки»
- «Начинать отладку при запуске»
О том, как установить сервер 1С на Ubuntu 16.04/18.04 можно прочитать в .
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Для того чтобы можно было отлаживать серверные процедуры надо установить флаги в форме "Сервис->Параметры" конфигуратора:
Отладка на сервере приложений
Это описано в документации:
Книга «1С:Предприятие 8.1. Конфигурирование и администрирование»
Глава 18. Инструменты конфигурирования
Отладчик и замеры производительности
"Отладка кода на сервере
Для установки отладочного режима следует запустить сервер 1С:Предприятия с ключом командной строки /Debug (ragent.exe /debug)."
Ключи запуска агента сервера описаны в книге:
«1С:Предприятие 8.1. Клиент-сервер. Особенности установки и использования»
"Запуск агента сервера как сервиса
Если при установке кластера серверов был выбран вариант запуска агента центрального сервера как сервиса, то данный сервис будет запущен автоматически, в процессе установки и также будет запускаться при старте операционной системы.
Если агент центрального сервера был установлен как приложение, то существует возможность зарегистрировать сервис вручную и затем осуществить его запуск.
Регистрация сервиса выполняется следующей командой:
Ragent.exe -instsrvc -usr <пользователь> -pwd <пароль> -port <порт> -range <диапазоны> -seclev <уровень> -debug | -rmsrvc | -start | -stop
Instsrvc – регистрация агента кластера как сервиса Windows. Если ragent.exe запущен с этим ключом, то он выполняет регистрацию в списке сервисов Windows и завершается. Не совместим с ключами -srvc, -rmsrvc;
Usr <имя пользователя>
Pwd <пароль пользователя> – имя и пароль пользователя Windows, от имени которого должен запускаться ragent.exe как сервис Windows. Могут использоваться только совместно с ключом -instsrvc при регистрации ragent.exe как сервиса Windows;
Port <порт> – номер главного порта агента кластера. Этот порт используется консолью кластера для обращения к центральному серверу. Порт агента кластера также указывается в качестве IP порта рабочего сервера;
Range <диапазоны> – диапазоны IP портов для динамического выбора. Из них выбираются служебные порты процессов кластера при невозможности их выбора из настроек соответствующего рабочего сервера. По умолчанию: 1560-1591. Примеры значений <диапазоны>: «45:49», «45:67,70:72,77:90»;
Seclev <уровень> – уровень безопасности процесса агента кластера. Определяет уровень безопасности соединений, устанавливаемых с процессом ragent.exe. <уровень> может принимать значения: 0 (по умолчанию) соединения не защищенные, 1 – защищенные соединения только на время выполнения аутентификации пользователей, 2 – постоянно защищенные соединения.;
Rmsrvc – отмена регистрации агента кластера как сервиса Windows. Если ragent.exe запущен с этим ключом, то он отменяет свою регистрацию в списке сервисов Windows и завершается. Не совместим с ключами -srvc, -daemon, -instsrvc.
Start - запустить ragent.exe, зарегистрированный как сервис Windows. Выполняет запуск ragent.exe, ранее зарегистрированного как сервис Windows, после чего завершается;
Stop - остановить ragent.exe, зарегистрированный и запущенный как сервис Windows. Выполняет остановку ragent.exe, ранее зарегистрированного и запущенного как сервис Windows, после чего завершается;
Debug - запуск кластера серверов в режиме отладки конфигураций. "
Таким образом если сервер 1С:Предприятия был запущен как сервис и по каким-то причинам в отладочном режиме он так же должен быть запущен как сервис, необходимо сначала отменить регистрацию сервиса (ключ -rmsrvc), а затем заново зарегистрировать сервис с ключом -debug.
Очевидно, что аналогичного эффекта можно добиться и другими способами, например непосредственной правкой реестра Windows. Для этого, по всей вероятности, следует обратиться к документации по Windows.
Интернет на АндроидеСрабатывает только при установке ключа "-debug" в реестре. Во всех остальных случаях почему-то не работает.
"ImagePath"=
было "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "F:\Program Files\1cv81\server"
поставили "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "F:\Program Files\1cv81\server"