Как настроить отладку серверных процедур в 1С:Предприятие?

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

При разработке и сопровождении систем на платформе 1С:Предприятие программисты часто сталкиваются с ситуацией, когда точки останова в клиентском коде (например, в формах или обработчиках клиентских событий) срабатывают без проблем, но при попытке зайти внутрь серверной процедуры или функции отладчик просто «перескакивает» её. Особенно это сбивает с толку начинающих разработчиков, когда и серверная, и клиентская части 1С запущены на одном локальном компьютере.

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

Выясним причину проблемы и по шагам разберем процесс настройки серверной отладки для операционных систем Windows и Linux, а также особенности конфигурации самого клиента 1С.

---

1. Принцип работы отладчика 1С и ключ запуска -debug

Прежде чем перейти к практике, проанализируем, как устроен механизм отладки. В клиент-серверном варианте работы системы код выполняется в разных процессах:

Для того чтобы Конфигуратор мог «перехватить» выполнение кода внутри процесса rphost.exe, этот процесс должен быть запущен в специальном режиме. За это отвечает параметр запуска -debug главного агента сервера 1С (ragent.exe). Если этот параметр не передан при старте службы, сервер игнорирует любые попытки подключения отладчика.

---

2. Пошаговая настройка сервера 1С под управлением Windows

Если ваш сервер приложений 1С функционирует в среде Windows, его параметры запуска хранятся в системном реестре. Нам потребуется отредактировать строковый параметр службы Агента сервера.

Рассмотрим детальный алгоритм действий:

  1. Остановка службы сервера:

    Перед внесением любых изменений в реестр необходимо остановить службу сервера 1С, иначе операционная система может заблокировать запись параметров или изменения не вступят в силу после перезапуска. Для этого нажмите сочетание клавиш Win + R, введите в появившемся окне команду services.msc и нажмите Enter.

    В открывшемся списке служб найдите службу с именем «Агент сервера 1С:Предприятия 8.3» (название может незначительно отличаться в зависимости от установленной версии платформы). Нажмите по ней правой кнопкой мыши и выберите пункт «Остановить».

  2. Редактирование системного реестра Windows:

    Снова нажмите сочетание клавиш Win + R, введите regedit и нажмите Enter для запуска редактора реестра.

    Перейдите по следующему пути:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)

    Примечание: Если вы используете 32-разрядную версию сервера или другую версию платформы, имя конечной ветки может иметь вид 1C:Enterprise 8.3 Server Agent или содержать конкретный номер релиза.

  3. Модификация параметра ImagePath:

    В правой части окна редактора реестра найдите строковый параметр с именем ImagePath. Этот параметр указывает операционной системе, какой исполняемый файл и с какими ключами необходимо запустить при старте службы.

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

    
    "C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
    

    Наша задача — добавить в самый конец этой строки параметр -debug. Обратите внимание, что параметр должен быть добавлен обязательно через пробел. Итоговая строка должна принять следующий вид:

    
    "C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
    

    Нажмите кнопку «ОК» для сохранения изменений в реестре.

  4. Запуск службы сервера:

    Вернитесь в оснастку «Службы» (services.msc), выделите службу «Агент сервера 1С:Предприятия 8.3» и нажмите кнопку «Запустить». Если все действия выполнены верно, служба успешно запустится уже в режиме отладки.

---

3. Пошаговая настройка сервера 1С под управлением Linux

В операционных системах семейства Linux параметры запуска демона (службы) сервера 1С:Предприятия хранятся в специальных конфигурационных файлах. Способ редактирования зависит от используемого дистрибутива Linux.

Посмотрим, как выполнить настройку по шагам:

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

sudo systemctl restart srv1cv83

Если в вашей системе не используется systemctl, перезапуск можно выполнить классическим способом:

sudo service srv1cv83 restart

---

4. Выбор протокола отладки: TCP/IP или HTTP

Начиная с версии платформы 8.3.7, разработчикам доступно два протокола взаимодействия отладчика Конфигуратора и исполняемых процессов сервера:

  1. Протокол TCP/IP (классический вариант):

    Используется по умолчанию при обычном указании ключа -debug. При таком режиме отладки Конфигуратор и рабочие процессы сервера взаимодействуют напрямую по внутренним динамическим портам TCP. Этот вариант отлично подходит для простых конфигураций локальной сети, когда сервер приложений и клиент находятся в одном сегменте сети и между ними нет сложных правил маршрутизации или сетевых экранов.

  2. Протокол HTTP (новый вариант):

    Для его активации служба сервера запускается с параметром -debug -http. В этом режиме взаимодействие происходит через специальное промежуточное звено — локальный сервер отладки (исполняемый файл dbgs.exe под Windows или соответствующий бинарный файл под Linux). По умолчанию сервер отладки слушает порт 1550.

    Этот способ незаменим, когда:

    • Выполняется отладка мобильных приложений или мобильного клиента.
    • Используется веб-клиент 1С, запущенный в интернет-браузере.
    • Разработка ведется в современной среде 1С:EDT (Enterprise Development Tools).
    • Клиент и сервер разделены сложными сетевыми экранами или трансляцией адресов (NAT).

Важное правило совместимости: выбранный протокол отладки на сервере должен строго соответствовать настройкам отладки в самом Конфигураторе. Проанализируем, где это настраивается в клиенте 1С:

Откройте Конфигуратор, перейдите в меню Сервис — Параметры и выберите вкладку «Отладка». В группе параметров «Способ отладки» выберите соответствующий переключатель:

---

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

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

  1. В Конфигураторе откройте меню Отладка — Подключение...
  2. В появившемся диалоговом окне «Подключение» обратите внимание на список доступных предметов отладки. Нажмите кнопку «Автоматическое подключение», расположенную в правой части окна.
  3. В открывшемся окне настроек установите флажки напротив интересующих вас типов приложений:
    • Тонкий клиент (для работы в управляемом приложении).
    • Толстый клиент (для обычных форм).
    • Фоновые задания (крайне важно, так как многие серверные процедуры вызываются асинхронно в фоновом режиме).
    • Внешнее соединение (если вылавливаются ошибки интеграционных веб-служб или COM-соединений).
  4. Нажмите «ОК» для сохранения настроек автоматического сопряжения. Теперь при старте любого сеанса выбранного типа Конфигуратор будет автоматически подключать его к процессу отладки без ручного вмешательства программиста.

---

6. Устранение сетевых проблем и настройка брандмауэра

Довольно частая ситуация: параметры прописаны, конфигурация верна, но точки останова на сервере по-прежнему игнорируются. Если клиент и сервер 1С находятся на одной машине, разработчики нередко считают, что сетевые ограничения на них не влияют. Однако локальный брандмауэр Windows (Windows Firewall) или сторонний антивирус все равно могут блокировать межпроцессный сетевой трафик.

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

---

7. Чек-лист для быстрой проверки работоспособности отладки

Если отладка серверного кода так и не заработала, последовательно проверьте следующие пункты:

  1. Проверка запущенного процесса: Откройте Диспетчер задач на сервере, перейдите на вкладку «Подробности», найдите процесс ragent.exe. Добавьте колонку «Командная строка» и убедитесь, что в параметрах запуска процесса действительно присутствует ключ -debug.
  2. Права доступа: При редактировании реестра Windows убедитесь, что вы делали это под учетной записью Администратора компьютера. Если изменения не сохранились, служба запустится без нужного флага.
  3. Совпадение версий платформы: Если на сервере установлено несколько версий платформы 1С:Предприятия, убедитесь, что вы отредактировали ветку реестра именно для той версии платформы, которая сейчас запущена в качестве активной службы сервера.
  4. Перезапуск клиентского сеанса: После включения режима отладки на сервере обязательно перезапустите клиентское приложение 1С:Предприятие (Предприятие или Тонкий клиент), чтобы сеанс заново зарегистрировался на сервере с флагом разрешения отладки.

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

← На главную