К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как отлаживать веб-клиент 1С: настройка и практика

Пошаговая инструкция по отладке веб-клиента 1С: включение отладки на сервере, протоколы HTTP и HTTPS, работа с конфигуратором, типичные ошибки и их решение.

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

Второй нюанс — протокол подключения. В зависимости от того, как опубликована база (HTTP или HTTPS) и как настроен сервер отладки, используется либо отладка по протоколу TCP, либо отладка через HTTP-сервер с указанием адреса сервера отладки. Ошибка в выборе протокола — самая частая причина ситуации «точка останова не срабатывает».

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

Как устроена отладка веб-клиента и почему она отличается

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

Практическое следствие: отладчик конфигуратора должен подключаться к рабочим процессам кластера (rphost в Windows, аналогичные процессы в Linux), а не к локальному приложению. Если база файловая и открыта через веб-сервер, отладка веб-клиента в таком режиме недоступна — требуется клиент-серверный вариант работы.

Шаг 1. Включите отладку на сервере 1С

На Windows откройте службы, найдите службу «Агент сервера 1С:Предприятия», остановите её и откройте свойства. В строке запуска добавьте параметр -debug, а если планируется отладка по протоколу HTTP — также -http. Пример строки запуска: "C:\Program Files\1cv8\...\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -http. После изменения перезапустите службу.

На Linux параметры добавляются в скрипт запуска агента сервера (srv1cv8) или в unit-файл systemd. Логика та же: ключ -debug включает сервер отладки по TCP, ключ -http — по протоколу HTTP, который чаще всего и требуется для веб-клиента.

Шаг 2. Разрешите отладку в конфигураторе и выберите протокол

Откройте конфигуратор и перейдите в меню «Сервис — Параметры» на вкладку «Отладка». Убедитесь, что установлен флажок разрешения отладки, и выберите протокол: «Отладка по TCP/IP» или «Отладка по HTTP». Для веб-клиента, опубликованного через веб-сервер, обычно корректный выбор — HTTP, при этом в поле адреса сервера отладки указывается имя сервера 1С.

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

Базовый порядок настройки
  1. 1
    Остановите службу агента сервера 1С и добавьте в строку запуска ключи -debug и -http
  2. 2
    Перезапустите службу и убедитесь, что кластер поднялся без ошибок
  3. 3
    В конфигураторе откройте Сервис — Параметры — Отладка, выберите протокол HTTP и укажите сервер отладки
  4. 4
    Проверьте, что в свойствах информационной базы в консоли кластера отладка не запрещена
  5. 5
    Установите точки останова в нужных модулях и откройте базу в браузере

Шаг 3. Подключите отладчик к сеансу веб-клиента

Запустите веб-клиент в браузере и выполните вход в базу. Затем в конфигураторе откройте «Отладка — Подключение». В списке доступных предметов отладки появятся сеансы: найдите сеанс с типом клиентского приложения «Веб-клиент» и отметьте его. Если список пуст, нажмите кнопку обновления и проверьте настройки сервера отладки.

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

Шаг 4. Ставьте точки останова и проверяйте результат

Точки останова устанавливаются как обычно: в модуле формы, общем модуле или модуле объекта — кликом по полю слева от строки или клавишей F9. После подключения отладчика выполните в браузере действие, которое вызывает нужный код: откройте форму, нажмите кнопку, проведите документ. Исполнение должно остановиться на точке, а в конфигураторе станут доступны стек вызовов, табло и окно вычисления выражений.

Признак корректной настройки — остановка исполнения и подсветка текущей строки в конфигураторе. Если точка останова отображается с признаком недостижимости (например, стоит в клиентском модуле, который в веб-клиенте не компилируется), проверьте директивы компиляции: код внутри #Если ТонкийКлиент Тогда в веб-клиенте не выполняется, для веб-клиента используется ветка #Если ВебКлиент Тогда.

Контрольные точки

Как проверить результат

Сеанс в списке подключения
Норма

Виден сеанс с типом «Веб-клиент» и текущим пользователем

Тревожный признак

Список пуст или видны только фоновые задания

Точка останова
Норма

При выполнении действия в браузере исполнение останавливается в конфигураторе

Тревожный признак

Точка игнорируется, действие выполняется без остановки

Стек вызовов
Норма

Отображается цепочка вызовов от обработчика до текущей строки

Тревожный признак

Стек пуст или отладчик показывает ошибку соединения

Типичные проблемы и их решение

Наиболее частая ситуация — пустой список предметов отладки. Причины: сервер запущен без ключа -debug, выбран неверный протокол (TCP вместо HTTP), отладка запрещена в свойствах базы, либо конфигуратор и сервер находятся в разных сетевых сегментах и порт сервера отладки недоступен. Проверяйте эти пункты последовательно, начиная со строки запуска службы.

Вторая типичная проблема — точка останова не срабатывает, хотя сеанс подключён. Здесь проверьте: не устарела ли конфигурация базы данных относительно редактируемой конфигурации (обновите конфигурацию БД), не находится ли код в ветке условной компиляции для другого клиента, и не выполняется ли вызов в фоновом задании — его нужно подключать к отладке отдельно.

Типичные ошибки
01
Забыли перезапустить службу сервера после добавления ключа -debug — сервер отладки не запущен, список сеансов пуст
02
Выбран протокол TCP, а веб-клиент работает через HTTP — отладчик не видит сеанс
03
Код обёрнут в директиву #Если ТонкийКлиент — в веб-клиенте он не компилируется и точка недостижима
04
Отлаживается устаревшая версия конфигурации — конфигурация БД не обновлена после изменений
05
Фоновое задание не подключено к отладке — серверный вызов выполняется в отдельном сеансе вне поля зрения отладчика

Ограничения веб-клиента и альтернативные способы диагностики

Не весь код доступен для отладки в веб-клиенте: расширения браузера, внешние компоненты и некоторые клиентские механизмы в нём не работают. Если подозрение падает именно на такую функциональность, проверяйте сценарий в тонком клиенте — там отладка настраивается проще и покрывает больше кода.

Когда полноценная отладка недоступна (например, нет доступа к настройкам сервера), используйте технологический журнал на сервере и журнал регистрации: включите запись событий ошибок и серверных вызовов, воспроизведите проблему и проанализируйте записи. Это медленнее, чем отладчик, но позволяет локализовать ошибку без изменения конфигурации служб.

Маршрут решения

Как выбрать действие

Список предметов отладки пустПроверьте ключи -debug и -http в строке запуска службы и перезапустите её
Сеанс виден, но точка не срабатываетОбновите конфигурацию БД и проверьте директивы условной компиляции
Код выполняется в фоновом заданииПодключите сеанс фонового задания через Отладка — Подключение
Нет доступа к настройкам сервераИспользуйте технологический журнал и журнал регистрации для анализа ошибки

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

Итог

Что важно запомнить

Веб-клиент 1С исполняет код на сервере, поэтому отладка настраивается в три шага: ключ -debug (и -http) в запуске службы сервера, выбор протокола HTTP в параметрах конфигуратора и подключение к сеансу веб-клиента через меню «Отладка — Подключение». Если точка останова не срабатывает, проверяйте обновление конфигурации БД, директивы компиляции и фоновые задания.

Частые вопросы

Можно ли отлаживать веб-клиент в файловой базе?

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

Почему в списке подключения нет моего сеанса?

Чаще всего сервер запущен без ключа -debug, выбран неверный протокол отладки (TCP вместо HTTP) или отладка запрещена в свойствах информационной базы в консоли кластера. Проверьте эти три пункта и обновите список кнопкой в окне подключения.

Точка останова стоит в клиентской процедуре формы, но не срабатывает. Почему?

Проверьте директивы условной компиляции: код внутри #Если ТонкийКлиент Тогда в веб-клиенте не компилируется. Также убедитесь, что конфигурация базы данных обновлена, и что вызов не уходит в фоновое задание — его сеанс подключается к отладке отдельно.

Замедляет ли включённая отладка работу сервера?

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

Как отладить ошибку, которая возникает только у конкретного пользователя?

Попросите пользователя войти в базу через веб-клиент, затем в конфигураторе откройте «Отладка — Подключение» и найдите его сеанс по имени пользователя. Подключите только этот сеанс и попросите воспроизвести проблемное действие — исполнение остановится на вашей точке останова.

Что делать, если нет доступа к настройкам службы сервера?

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