Разработка и Конфигурация · 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С и добавьте в строку запуска ключи -debug и -http
- 2Перезапустите службу и убедитесь, что кластер поднялся без ошибок
- 3В конфигураторе откройте Сервис — Параметры — Отладка, выберите протокол HTTP и укажите сервер отладки
- 4Проверьте, что в свойствах информационной базы в консоли кластера отладка не запрещена
- 5Установите точки останова в нужных модулях и откройте базу в браузере
Шаг 3. Подключите отладчик к сеансу веб-клиента
Запустите веб-клиент в браузере и выполните вход в базу. Затем в конфигураторе откройте «Отладка — Подключение». В списке доступных предметов отладки появятся сеансы: найдите сеанс с типом клиентского приложения «Веб-клиент» и отметьте его. Если список пуст, нажмите кнопку обновления и проверьте настройки сервера отладки.
Учтите важную особенность: веб-клиент может выполнять серверные вызовы в разных рабочих процессах кластера, если их несколько. Платформа поддерживает автоматическое подключение отладчика к нужному процессу, но при жёсткой привязке сеансов к конкретному rphost точка останова может не сработать. В таком случае проверьте настройки требований назначения функциональности в консоли кластера.
Шаг 4. Ставьте точки останова и проверяйте результат
Точки останова устанавливаются как обычно: в модуле формы, общем модуле или модуле объекта — кликом по полю слева от строки или клавишей F9. После подключения отладчика выполните в браузере действие, которое вызывает нужный код: откройте форму, нажмите кнопку, проведите документ. Исполнение должно остановиться на точке, а в конфигураторе станут доступны стек вызовов, табло и окно вычисления выражений.
Признак корректной настройки — остановка исполнения и подсветка текущей строки в конфигураторе. Если точка останова отображается с признаком недостижимости (например, стоит в клиентском модуле, который в веб-клиенте не компилируется), проверьте директивы компиляции: код внутри #Если ТонкийКлиент Тогда в веб-клиенте не выполняется, для веб-клиента используется ветка #Если ВебКлиент Тогда.
Как проверить результат
Виден сеанс с типом «Веб-клиент» и текущим пользователем
Список пуст или видны только фоновые задания
При выполнении действия в браузере исполнение останавливается в конфигураторе
Точка игнорируется, действие выполняется без остановки
Отображается цепочка вызовов от обработчика до текущей строки
Стек пуст или отладчик показывает ошибку соединения
Типичные проблемы и их решение
Наиболее частая ситуация — пустой список предметов отладки. Причины: сервер запущен без ключа -debug, выбран неверный протокол (TCP вместо HTTP), отладка запрещена в свойствах базы, либо конфигуратор и сервер находятся в разных сетевых сегментах и порт сервера отладки недоступен. Проверяйте эти пункты последовательно, начиная со строки запуска службы.
Вторая типичная проблема — точка останова не срабатывает, хотя сеанс подключён. Здесь проверьте: не устарела ли конфигурация базы данных относительно редактируемой конфигурации (обновите конфигурацию БД), не находится ли код в ветке условной компиляции для другого клиента, и не выполняется ли вызов в фоновом задании — его нужно подключать к отладке отдельно.
Ограничения веб-клиента и альтернативные способы диагностики
Не весь код доступен для отладки в веб-клиенте: расширения браузера, внешние компоненты и некоторые клиентские механизмы в нём не работают. Если подозрение падает именно на такую функциональность, проверяйте сценарий в тонком клиенте — там отладка настраивается проще и покрывает больше кода.
Когда полноценная отладка недоступна (например, нет доступа к настройкам сервера), используйте технологический журнал на сервере и журнал регистрации: включите запись событий ошибок и серверных вызовов, воспроизведите проблему и проанализируйте записи. Это медленнее, чем отладчик, но позволяет локализовать ошибку без изменения конфигурации служб.
Как выбрать действие
Итоговая логика проста: веб-клиент отлаживается на сервере, поэтому все проблемы сводятся к трём зонам — запуск сервера отладки, выбор протокола и корректность самой конфигурации. Системная проверка этих зон решает подавляющее большинство ситуаций.
Что важно запомнить
Веб-клиент 1С исполняет код на сервере, поэтому отладка настраивается в три шага: ключ -debug (и -http) в запуске службы сервера, выбор протокола HTTP в параметрах конфигуратора и подключение к сеансу веб-клиента через меню «Отладка — Подключение». Если точка останова не срабатывает, проверяйте обновление конфигурации БД, директивы компиляции и фоновые задания.
Частые вопросы
Можно ли отлаживать веб-клиент в файловой базе?
Нет. Отладка веб-клиента требует клиент-серверного режима работы, поскольку код исполняется рабочими процессами кластера. В файловом варианте, опубликованном на веб-сервере, подключить отладчик к сеансу веб-клиента нельзя — используйте тонкий клиент для отладки той же логики.
Почему в списке подключения нет моего сеанса?
Чаще всего сервер запущен без ключа -debug, выбран неверный протокол отладки (TCP вместо HTTP) или отладка запрещена в свойствах информационной базы в консоли кластера. Проверьте эти три пункта и обновите список кнопкой в окне подключения.
Точка останова стоит в клиентской процедуре формы, но не срабатывает. Почему?
Проверьте директивы условной компиляции: код внутри #Если ТонкийКлиент Тогда в веб-клиенте не компилируется. Также убедитесь, что конфигурация базы данных обновлена, и что вызов не уходит в фоновое задание — его сеанс подключается к отладке отдельно.
Замедляет ли включённая отладка работу сервера?
Да, режим отладки добавляет накладные расходы на исполнение кода и открывает дополнительный канал управления процессами. На продуктивном контуре его рекомендуется включать только на время диагностики, а после завершения убрать ключ -debug и перезапустить службу.
Как отладить ошибку, которая возникает только у конкретного пользователя?
Попросите пользователя войти в базу через веб-клиент, затем в конфигураторе откройте «Отладка — Подключение» и найдите его сеанс по имени пользователя. Подключите только этот сеанс и попросите воспроизвести проблемное действие — исполнение остановится на вашей точке останова.
Что делать, если нет доступа к настройкам службы сервера?
Используйте косвенные методы: технологический журнал с событием EXCP для сбора ошибок, журнал регистрации и временные сообщения через СообщитьПользователю в тестовой копии базы. Это позволяет локализовать проблему без изменения параметров запуска сервера.