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

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

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

Как включить и выполнить отладку веб-клиента 1С: настройка сервера, режим отладки HTTP, точки останова, типичные ошибки и ограничения.

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

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

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

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

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

Шаг 1. Включите режим отладки на веб-сервере

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

Если публикация настраивается вручную, проверьте файл default.vrd в каталоге публикации. В элементе point должен присутствовать атрибут debug="true". Без этого атрибута веб-сервер будет отклонять отладочные подключения, и конфигуратор не увидит клиентский сеанс.

<point name="ИмяБазы" ... debug="true">

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

Шаг 2. Настройте запуск отладки в конфигураторе

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

Без автоматического подключения отладчик увидит только тот контекст, который был запущен первым. Это самая частая причина ситуации «серверный код останавливается, а клиентский — нет».

Порядок действий
  1. 1
    Опубликуйте базу на веб-сервере с разрешённой отладкой (debug="true")
  2. 2
    В конфигураторе выберите запуск через веб-клиент
  3. 3
    Включите автоматическое подключение предметов отладки: Сервер и Веб-клиент
  4. 4
    Нажмите F5 — откроется браузер с отладочным сеансом
  5. 5
    Поставьте точки останова и воспроизведите проблемное действие
  6. 6
    Убедитесь, что выполнение остановилось в нужной процедуре

Шаг 3. Запустите сеанс и проверьте подключение

Нажмите F5 (или «Начать отладку»). Конфигуратор откроет браузер со ссылкой на опубликованную базу. Войдите в сеанс под нужным пользователем — важно, чтобы это был именно тот сеанс, который запущен из отладки, а не открытый ранее вручную: «чужой» сеанс отладчик не подхватит.

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

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

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

Список предметов отладки
Норма

Видны Веб-клиент и Сервер с активным сеансом

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

Список пуст или есть только Сервер

Точка останова в клиентской процедуре
Норма

Иконка точки сплошная, выполнение останавливается

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

Точка с восклицательным знаком — контекст недоступен

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

Показывает клиентские и серверные вызовы

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

Только серверные вызовы при клиентском действии

Шаг 4. Работайте с точками останова и пошаговым выполнением

Точки останова ставятся как обычно — кликом по полю слева от строки или клавишей F9. Обратите внимание на директивы компиляции: процедура с директивой &НаСервере остановится в серверном предмете отладки, а &НаКлиенте — в клиентском. Если точка стоит в общем модуле, проверьте его флажки «Клиент (обычное приложение)», «Сервер», «Внешнее соединение» — модуль должен компилироваться в том контексте, где исполняется код.

Используйте стандартные клавиши: F10 — шаг через вызов, F11 — шаг с заходом, Shift+F11 — шаг из процедуры, F5 — продолжить. Для просмотра значений применяйте «Вычислить выражение» (Shift+F9) и табло, а для ожидания изменения данных — точки останова с условием.

Отладка серверных вызовов и фоновых заданий из веб-клиента

Когда клиентская процедура вызывает серверную, отладчик переключается между предметами отладки автоматически — при условии, что оба подключены. Если серверный код исполняется в кластере 1С, сервер должен быть запущен с ключом отладки (-debug), иначе серверные точки работать не будут, даже если веб-публикация настроена правильно.

Фоновые задания, запущенные из веб-клиента, подключаются отдельно: откройте «Отладка» → «Подключение», найдите в списке доступных предметов фоновое задание и подключите его вручную. Автоподключение фоновых заданий тоже можно включить в настройках, что удобно при массовой отладке длительных операций.

Сравнение вариантов

Отладка через конфигуратор

Полный контроль: точки останова, табло, стек. Требует доступа к публикации и прав разработчика.

Журнал регистрации и сообщения

Подходит, когда конфигуратор недоступен. Добавляйте ЗаписьЖурналаРегистрации в ключевых точках, затем анализируйте лог. Медленнее, но работает на любой среде.

Инструменты разработчика браузера

Помогают при ошибках загрузки, сетевых сбоях и проблемах с сертификатами. Встроенный код 1С там не отладить, но видны HTTP-запросы и ошибки транспорта.

Типичные ошибки и ограничения

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

Отдельное ограничение: код, исполняемый на стороне браузера в виде скомпилированных модулей веб-клиента, отлаживается только штатным отладчиком платформы — попытки искать его в инструментах браузера бесполезны. Также помните, что остановка выполнения в сеансе блокирует этот сеанс: на тестовой базе это безопасно, на рабочей — недопустимо.

Типичные ошибки
01
Забыли debug="true" в default.vrd — клиентский сеанс не появляется в предметах отладки
02
Кластер запущен без ключа -debug — серверные точки останова игнорируются
03
Отключено автоподключение веб-клиента — останавливается только серверный код
04
Сеанс открыт вручную в браузере, а не через F5 — отладчик его не видит
05
Точка останова в общем модуле без нужного флажка компиляции — точка недостижима
06
Отладка включена на продуктивной публикации — риск блокировки пользователей и утечки данных

Как проверить, что проблема решена

После исправления кода снимите точки останова (Ctrl+Shift+F9), перезапустите отладочный сеанс и повторите проблемный сценарий от начала до конца. Убедитесь, что данные записываются корректно, ошибки в журнале регистрации отсутствуют, а поведение в веб-клиенте совпадает с поведением в тонком клиенте, если конфигурация поддерживает оба.

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

Итог

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

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

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

Почему точка останова отображается с восклицательным знаком?

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

Можно ли отладить веб-клиент без конфигуратора?

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

Отладка работает на сервере, но не в клиентских процедурах. Что делать?

Почти всегда причина в отключённом автоподключении веб-клиента или в том, что сеанс открыт не из конфигуратора. Включите автоподключение в настройках отладки и запускайте сеанс клавишей F5.

Нужен ли ключ -debug для файловой базы через веб-сервер?

Для файловой базы серверный код исполняется внутри процесса веб-сервера, поэтому ключ кластера не нужен — достаточно debug="true" в публикации. Ключ -debug требуется только при работе через сервер 1С:Предприятия.

Опасно ли оставить включённой отладку на публикации?

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

Как отладить фоновое задание, запущенное из веб-клиента?

Откройте «Отладка» → «Подключение», найдите фоновое задание в списке доступных предметов и подключите его. Чтобы не делать это вручную каждый раз, включите фоновые задания в настройках автоматического подключения.