Обратный звонок

Как включить отладку на сервере 1С в клиент-серверном варианте

← Все вопросы и ответы

В клиент-серверном варианте код, который выполняется на сервере 1С (серверные процедуры модулей, фоновые задания, HTTP- и веб-сервисы), можно отлаживать в Конфигураторе, только если сервер 1С:Предприятия запущен в режиме отладки. Режим включается ключом -debug в строке запуска агента сервера (ragent), после этого сервер нужно перезапустить.

Режим отладки замедляет сервер. Документация 1С не рекомендует держать его включённым, пока в базе работают пользователи: включайте отладку на тестовом сервере или на время поиска ошибки, потом выключите. Для включения и выключения сервер 1С перезапускается, на это время работа в его базах останавливается.

Какой протокол выбрать

Отладка работает по протоколу HTTP или TCP/IP, возможности у них почти одинаковые. Протокол указывается после ключа: -debug -http или -debug -tcp. Ключ -debug без значения включает TCP/IP. В Конфигураторе нужно выбрать тот же протокол, что и на сервере.

Порты должны быть открыты в брандмауэре. Для HTTP сервер отладки кластера по умолчанию использует порт 1550 на сервере 1С. Для TCP/IP по умолчанию используются порты 1560-1591 на всех компьютерах, которые участвуют в отладке.

Сервер 1С работает как служба Windows

  1. Остановите службу агента сервера

    Нажмите Win+R, введите services.msc и остановите службу «Агент сервера 1С:Предприятия 8.3» (у 64-разрядной версии с пометкой «x86-64»). Нужны права администратора.
  2. Добавьте ключ отладки в строку запуска службы

    Нажмите Win+R, введите regedit и откройте раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64) (для 32-разрядной версии: 1C:Enterprise 8.3 Server Agent). Откройте параметр ImagePath и допишите в конец строки через пробел -debug -http (для TCP/IP: -debug). Остальное в строке не меняйте. Пример строки после правки, версия платформы и каталоги у вас свои:
    "C:\Program Files\1cv8\8.3.27.xxxx\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
  3. Запустите службу

    В окне «Службы» запустите службу агента сервера: кластер серверов стартует в режиме отладки.

Другой способ из документации 1С: перерегистрировать службу командой ragent /instsrvc с прежними параметрами (порты, каталог данных кластера, пользователь и пароль, от имени которого работает служба) и ключом /debug -http. Если сервер 1С запущен не как служба, а как приложение, остановите его клавишами Ctrl+C и запустите заново, добавив к прежним параметрам /debug -http.

Сервер 1С работает как сервис Linux (systemd)

  1. Остановите сервер

    sudo systemctl stop srv1cv8-A.B.C.D@default
    Здесь A.B.C.D - полный номер версии платформы, default - имя экземпляра сервиса по умолчанию.
  2. Добавьте параметр отладки

    sudo systemctl edit srv1cv8-A.B.C.D@default
    В открывшемся файле добавьте строки:
    [Service]
    Environment="SRV1CV8_DEBUG=-debug -http"
    Кавычки вокруг всей записи обязательны: без них systemd отбросит часть значения после пробела, и сервер включит отладку по TCP/IP вместо HTTP. Для TCP/IP достаточно строки Environment=SRV1CV8_DEBUG=-debug. Сохраните файл и закройте редактор, systemd перечитает настройки сам.
  3. Запустите сервер

    sudo systemctl start srv1cv8-A.B.C.D@default

Настройка Конфигуратора и подключение

  1. Выберите тот же протокол

    В Конфигураторе откройте «Сервис» → «Параметры», закладку «Отладка». В поле «Протокол отладки» выберите «Отладка по протоколу HTTP» или «Отладка по протоколу TCP/IP», как на сервере. Для клиент-серверной базы в группе «Сервер отладки» сам выбирается вариант «Использовать сервер отладки кластера».
  2. Запустите отладку

    Команда «Отладка» → «Начать отладку» запускает программу в режиме отладки. Чтобы отладить уже работающий сеанс: «Отладка» → «Подключение», в окне «Предметы отладки» выберите строку в списке «Доступные предметы отладки» (пользователь, тип, например «Сервер», и номер сеанса) и нажмите «Подключить». Точки останова срабатывают только в подключённых предметах отладки.
  3. Для фоновых заданий включите автоматическое подключение

    Фоновые задания и вызовы сервисов выполняются недолго, подключиться к ним вручную обычно не успеть. В окне «Предметы отладки» нажмите «Автоматическое подключение...» и отметьте нужные типы, например «Фоновое задание» или «HTTP-сервис». Настройка действует сразу.

Как проверить, что сервер отладки работает

Для протокола HTTP: в Конфигураторе откройте «Отладка» → «Подключение» → «Настройка...» и скопируйте адрес из строки «Сервер отладки». Откройте этот адрес в браузере: работающий сервер отладки отвечает строкой вида «1C:Enterprise 8.3 Debug Server ... - it works!».

Как выключить отладку

Уберите -debug -http из параметра ImagePath (Windows) или удалите строку SRV1CV8_DEBUG командой systemctl edit (Linux) и перезапустите сервер 1С.

Источник: its.1c.ru, «1С:Предприятие 8.3. Руководство разработчика», глава 31 «Отладка и тестирование прикладных решений» и глава 39, раздел «Отладка»; «Клиент-серверный вариант. Руководство администратора», глава 4 «Запуск компонентов системы»; «Руководство администратора», приложение 4, «Агент кластера (ragent)»; база знаний 1С kb.1ci.com, «How to enable debugging of 1C:Enterprise server instance»; документация systemd, systemd.exec, параметр Environment=.

Не получается или нет времени разбираться?
Сделаем за вас: позвоните +7 (985) 769-04-94, напишите на info@creative-grp.ru или оставьте заявку.
Оставить заявку

Обратный звонок

Оставьте номер - перезвоним в течение 15 минут

Нажимая кнопку, вы соглашаетесь с политикой обработки данных