Как настроить отладку серверных модулей в 1С 8.3 в управляемом приложении?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Основные принципы отладки серверного кода в 1С

Прежде всего, давайте выясним, почему точка останова на сервере может не срабатывать. Причина кроется в том, что для отладки серверного кода требуется, чтобы не только клиентское приложение, но и сам сервер 1С:Предприятия были запущены в специальном режиме отладки. Это позволяет отладчику конфигуратора "подключиться" к серверу и контролировать выполнение серверных процедур и функций.

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

Шаг 1: Настройка серверной части 1С:Предприятия

Самый критичный момент в настройке отладки серверного кода — это перевод службы агента сервера 1С:Предприятия в режим отладки. Если сервер работает как служба, то мы не можем просто так "запустить его в режиме отладки". Нам потребуется изменить параметры запуска этой службы.

  1. Откроем оснастку "Администрирование серверов 1С:Предприятия". Мы можем найти ее в меню "Пуск" или через "Панель управления" -> "Администрирование".
  2. Найдем нужный кластер и рабочий процесс. В оснастке развернем ветку с нашим сервером, затем с нашим кластером и выберем рабочий процесс, к которому относится наша информационная база.
  3. Изменим свойства рабочего процесса. Щелкнем правой кнопкой мыши по рабочему процессу и выберем "Свойства". На вкладке "Отладка" мы должны указать, что рабочий процесс должен запускаться в режиме отладки.
  4. Добавим параметр -debug для службы агента сервера. Это ключевой момент. Если наш сервер запущен как служба, нам нужно модифицировать ее параметры запуска. Мы можем сделать это через свойства службы в стандартном оснастке "Службы" Windows.
    1. Откроем "Службы" (services.msc).
    2. Найдем службу "Агент сервера 1С:Предприятия 8.3" (обычно что-то вроде 1C:Enterprise 8.3 Server Agent (x86-64)).
    3. Щелкнем правой кнопкой мыши по службе и выберем "Свойства".
    4. Перейдем на вкладку "Общие" и в поле "Путь к исполняемому файлу" нам нужно добавить параметр -debug после пути к файлу ragent.exe.

    Пример того, как это должно выглядеть:

    
    "C:\Program Files\1cv8\8.3.20.1718\bin\ragent.exe" -srvc -agent -debug -port 1540 -regport 1541 -pidfile "C:\Program Files\1cv8\srvinfo\1CV8_1540.pid"
    

    Важно: Убедитесь, что параметр -debug добавлен именно к пути запуска ragent.exe.

  5. Перезапустим службу агента 1С:Предприятия. После изменения параметров службы, обязательно перезапустим ее, чтобы изменения вступили в силу. Иногда может понадобиться даже перезагрузка всего сервера, если изменения не применяются сразу.

Без этой настройки отладчик конфигуратора просто не сможет "увидеть" серверные вызовы, и наши точки останова останутся неактивными.

Шаг 2: Настройка клиентской части и конфигуратора

После того как сервер настроен на работу в режиме отладки, нам нужно убедиться, что клиентское приложение и конфигуратор также готовы к ней.

  1. Проверим подключение в конфигураторе.

    Откроем конфигуратор и перейдем в меню "Отладка" -> "Подключение". Здесь мы должны увидеть подключение к нашему кластеру серверов 1С или непосредственно к серверу, где работает наша база. Если такого подключения нет, нам необходимо его создать, указав адрес сервера и порт.

  2. Запустим клиентское приложение в режиме отладки.
    • Из конфигуратора: Самый простой способ — запустить клиентское приложение непосредственно из конфигуратора, нажав F5. В этом случае конфигуратор автоматически передает все необходимые параметры для отладки.
    • Через параметры запуска: Если мы запускаем клиент не из конфигуратора (например, с помощью ярлыка), нам нужно указать параметр /Debug в свойствах ярлыка или в командной строке при запуске.

    Пример для запуска из командной строки или ярлыка:

    
    "C:\Program Files\1cv8\common\1cv8.exe" ENTERPRISE /S "ServerName\BaseName" /Debug
    

После выполнения этих шагов, при следующем запуске клиентского приложения и установке точек останова в серверном коде, они должны срабатывать.

Шаг 3: Проверка возможных препятствий

Даже после правильной настройки сервера и клиента, могут возникнуть ситуации, когда отладка не работает. Часто причиной тому являются сетевые настройки или особенности развертывания.

  1. Брандмауэр и антивирусные программы:

    Обязательно проверьте брандмауэр (как на сервере, так и на клиентской машине) и любые антивирусные программы. Они могут блокировать порты, используемые для отладки. Стандартные порты отладки 1С обычно находятся в диапазоне 1560-1591. Убедимся, что эти порты открыты для входящих и исходящих соединений.

  2. Прокси-серверы:

    Если мы используем толстый клиент и подключаемся к серверной базе через прокси-сервер, убедимся, что прокси не блокирует порты отладки. Нам может потребоваться настроить исключения в конфигурации прокси.

  3. Несколько рабочих процессов:

    Если на нашем сервере 1С настроено несколько рабочих процессов, отладка может "прыгать" между ними. Это может привести к тому, что точка останова будет установлена в одном процессе, а наш сеанс попадет в другой. В таких случаях полезно настроить отладку на конкретный рабочий процесс через оснастку "Администрирование серверов 1С:Предприятия" или использовать режим "Отладка на сервере" через конфигуратор, который позволяет более точно привязать отладчик к нужному сеансу.

  4. Веб-клиент:

    Для веб-клиента процесс отладки серверного кода аналогичен. Веб-клиент не имеет прямого отношения к отладке серверного кода. Главное — правильно настроить сам сервер 1С в режиме отладки, как было описано в шаге 1. Отладчик конфигуратора всегда подключается к серверу 1С, а не к веб-клиенту. Также, убедимся, что веб-сервер (IIS или Apache) настроен корректно и не блокирует порты.

Решение проблем с отладкой: пошаговая инструкция

Давайте сведем все воедино и представим краткую последовательность действий, если у нас возникли проблемы с отладкой:

  1. Проверим, запущен ли наш сервер 1С:Предприятия в режиме отладки. Это самое первое и главное. Если служба запущена, убедимся, что в ее свойствах (в оснастке "Службы" Windows) добавлен параметр -debug к пути исполняемого файла ragent.exe. После изменения обязательно перезапустим службу.
  2. Убедимся, что клиентское приложение запущено в режиме отладки. Если мы запускаем его из конфигуратора (F5), это происходит автоматически. Если через ярлык, проверим, что в свойствах ярлыка добавлен параметр /Debug.
  3. Проверим подключение к отладке в конфигураторе. Откроем "Отладка" -> "Подключение" и удостоверимся, что наше соединение активно и корректно указывает на сервер 1С.
  4. Отключим или временно настроим брандмауэр и антивирусные программы. Для проверки можем попробовать полностью отключить их на короткое время, чтобы исключить блокировку портов. Если отладка заработает, значит, проблема в них, и нам потребуется добавить соответствующие исключения для портов 1560-1591.
  5. Перезагрузим компоненты. Иногда помогает полная перезагрузка службы сервера 1С:Предприятия, а иногда и клиентского компьютера, чтобы гарантировать применение всех изменений.
  6. Уточним, к какому рабочему процессу мы подключаемся. Если на сервере несколько рабочих процессов, мы можем столкнуться с ситуацией, когда наш сеанс отладки "потерялся". Попробуем явно указать рабочий процесс или использовать возможности отладки на сервере из конфигуратора.

Помните, что терпение и методичность — наши главные помощники в поиске и устранении проблем с отладкой. Следуя этим шагам, мы значительно увеличим шансы на успешную настройку и эффективную работу с серверным кодом в 1С 8.3.

← На главную