Разработка и Конфигурация · 9 мин
Как отладить веб-клиент 1С: настройка и практика
Как включить и выполнить отладку веб-клиента 1С: настройка сервера, режим отладки HTTP, точки останова, типичные ошибки и ограничения.
Отладка веб-клиента 1С отличается от отладки тонкого клиента: код исполняется не только на сервере, но и в браузере, а значит, конфигуратору нужно подключиться к двум разным средам исполнения. Если просто запустить отладку привычным способом, точки останова в клиентских процедурах не сработают, и разработчик получит ложное ощущение, что код не выполняется.
Проблема решается включением специального режима отладки на веб-сервере и корректным подключением предметов отладки в конфигураторе. Ниже разобран полный цикл: от подготовки публикации до пошагового прохода по клиентскому и серверному коду, а также типичные ошибки, из-за которых отладка «молчит».
Как устроена отладка веб-клиента и почему она не работает «из коробки»
Веб-клиент 1С исполняет клиентский код в браузере, а серверный — на сервере 1С:Предприятия или в файловой базе через веб-сервер. Конфигуратор подключается к этим средам через протокол отладки, но по умолчанию веб-сервер не разрешает отладочные подключения — это сделано осознанно, чтобы на рабочей публикации нельзя было перехватить исполнение кода.
Поэтому первое условие успешной отладки — публикация информационной базы должна быть выполнена с разрешением отладки. Второе условие — в конфигураторе должен быть выбран правильный тип клиента для запуска, иначе среда исполнения просто не появится в списке предметов отладки.
Шаг 1. Включите режим отладки на веб-сервере
Для публикации через диалог «Публикация на веб-сервере» в конфигураторе откройте свойства публикации и установите флажок разрешения отладки. После изменения настроек публикацию нужно обновить, чтобы параметры записались в файл настроек.
Если публикация настраивается вручную, проверьте файл default.vrd в каталоге публикации. В элементе point должен присутствовать атрибут debug="true". Без этого атрибута веб-сервер будет отклонять отладочные подключения, и конфигуратор не увидит клиентский сеанс.
<point name="ИмяБазы" ... debug="true">
Для файловой базы, опубликованной через веб-сервер, дополнительно может потребоваться запуск отладчика на стороне платформы — проверьте, что служба или процесс отладки доступны с той машины, где открыт конфигуратор.
Шаг 2. Настройте запуск отладки в конфигураторе
Откройте конфигуратор, перейдите в меню «Отладка» → «Настройка запуска» (или «Параметры» в зависимости от версии) и убедитесь, что в качестве клиента выбран веб-клиент, а в поле браузера указан нужный браузер. Затем включите автоматическое подключение предметов отладки: «Отладка» → «Подключение» → «Автоматическое подключение» — и отметьте «Веб-клиент» и «Сервер».
Без автоматического подключения отладчик увидит только тот контекст, который был запущен первым. Это самая частая причина ситуации «серверный код останавливается, а клиентский — нет».
- 1Опубликуйте базу на веб-сервере с разрешённой отладкой (debug="true")
- 2В конфигураторе выберите запуск через веб-клиент
- 3Включите автоматическое подключение предметов отладки: Сервер и Веб-клиент
- 4Нажмите F5 — откроется браузер с отладочным сеансом
- 5Поставьте точки останова и воспроизведите проблемное действие
- 6Убедитесь, что выполнение остановилось в нужной процедуре
Шаг 3. Запустите сеанс и проверьте подключение
Нажмите F5 (или «Начать отладку»). Конфигуратор откроет браузер со ссылкой на опубликованную базу. Войдите в сеанс под нужным пользователем — важно, чтобы это был именно тот сеанс, который запущен из отладки, а не открытый ранее вручную: «чужой» сеанс отладчик не подхватит.
Проверить подключение можно через «Отладка» → «Подключение»: в списке доступных предметов отладки должен появиться веб-клиент с указанием сеанса. Если список пуст — возвращайтесь к настройкам публикации и автоподключения.
Как проверить результат
Видны Веб-клиент и Сервер с активным сеансом
Список пуст или есть только Сервер
Иконка точки сплошная, выполнение останавливается
Точка с восклицательным знаком — контекст недоступен
Показывает клиентские и серверные вызовы
Только серверные вызовы при клиентском действии
Шаг 4. Работайте с точками останова и пошаговым выполнением
Точки останова ставятся как обычно — кликом по полю слева от строки или клавишей F9. Обратите внимание на директивы компиляции: процедура с директивой &НаСервере остановится в серверном предмете отладки, а &НаКлиенте — в клиентском. Если точка стоит в общем модуле, проверьте его флажки «Клиент (обычное приложение)», «Сервер», «Внешнее соединение» — модуль должен компилироваться в том контексте, где исполняется код.
Используйте стандартные клавиши: F10 — шаг через вызов, F11 — шаг с заходом, Shift+F11 — шаг из процедуры, F5 — продолжить. Для просмотра значений применяйте «Вычислить выражение» (Shift+F9) и табло, а для ожидания изменения данных — точки останова с условием.
Отладка серверных вызовов и фоновых заданий из веб-клиента
Когда клиентская процедура вызывает серверную, отладчик переключается между предметами отладки автоматически — при условии, что оба подключены. Если серверный код исполняется в кластере 1С, сервер должен быть запущен с ключом отладки (-debug), иначе серверные точки работать не будут, даже если веб-публикация настроена правильно.
Фоновые задания, запущенные из веб-клиента, подключаются отдельно: откройте «Отладка» → «Подключение», найдите в списке доступных предметов фоновое задание и подключите его вручную. Автоподключение фоновых заданий тоже можно включить в настройках, что удобно при массовой отладке длительных операций.
Сравнение вариантов
Полный контроль: точки останова, табло, стек. Требует доступа к публикации и прав разработчика.
Подходит, когда конфигуратор недоступен. Добавляйте ЗаписьЖурналаРегистрации в ключевых точках, затем анализируйте лог. Медленнее, но работает на любой среде.
Помогают при ошибках загрузки, сетевых сбоях и проблемах с сертификатами. Встроенный код 1С там не отладить, но видны HTTP-запросы и ошибки транспорта.
Типичные ошибки и ограничения
Чаще всего отладка не работает по одной из предсказуемых причин: не включён debug в публикации, сервер кластера запущен без ключа отладки, не настроено автоподключение веб-клиента, либо сеанс открыт не из конфигуратора. Реже мешают устаревший кэш браузера и несовпадение версии платформы публикации и конфигуратора.
Отдельное ограничение: код, исполняемый на стороне браузера в виде скомпилированных модулей веб-клиента, отлаживается только штатным отладчиком платформы — попытки искать его в инструментах браузера бесполезны. Также помните, что остановка выполнения в сеансе блокирует этот сеанс: на тестовой базе это безопасно, на рабочей — недопустимо.
Как проверить, что проблема решена
После исправления кода снимите точки останова (Ctrl+Shift+F9), перезапустите отладочный сеанс и повторите проблемный сценарий от начала до конца. Убедитесь, что данные записываются корректно, ошибки в журнале регистрации отсутствуют, а поведение в веб-клиенте совпадает с поведением в тонком клиенте, если конфигурация поддерживает оба.
Перед возвратом базы в работу отключите режим отладки в публикации и пересоздайте публикацию. Это закроет отладочный интерфейс и исключит случайное подключение к сеансам пользователей.
Что важно запомнить
Отладка веб-клиента требует трёх условий: разрешённой отладки в публикации, сервера с ключом -debug и автоподключения предметов отладки в конфигураторе. Сеанс запускайте только через F5, а после работы отключайте debug-режим.
Частые вопросы
Почему точка останова отображается с восклицательным знаком?
Это означает, что контекст исполнения недоступен: либо нужный предмет отладки не подключён, либо модуль не компилируется в той среде, где выполняется код. Проверьте флажки компиляции общего модуля и список подключённых предметов отладки.
Можно ли отладить веб-клиент без конфигуратора?
Полноценную пошаговую отладку встроенного языка — нет. Как обходной вариант используйте записи в журнал регистрации и инструменты разработчика браузера для анализа сетевых ошибок, но для точек останова конфигуратор обязателен.
Отладка работает на сервере, но не в клиентских процедурах. Что делать?
Почти всегда причина в отключённом автоподключении веб-клиента или в том, что сеанс открыт не из конфигуратора. Включите автоподключение в настройках отладки и запускайте сеанс клавишей F5.
Нужен ли ключ -debug для файловой базы через веб-сервер?
Для файловой базы серверный код исполняется внутри процесса веб-сервера, поэтому ключ кластера не нужен — достаточно debug="true" в публикации. Ключ -debug требуется только при работе через сервер 1С:Предприятия.
Опасно ли оставить включённой отладку на публикации?
Да. Отладочный режим позволяет подключиться к сеансам, останавливать выполнение и просматривать данные. На продуктивной базе это риск безопасности и стабильности, поэтому после завершения работ debug нужно отключить и обновить публикацию.
Как отладить фоновое задание, запущенное из веб-клиента?
Откройте «Отладка» → «Подключение», найдите фоновое задание в списке доступных предметов и подключите его. Чтобы не делать это вручную каждый раз, включите фоновые задания в настройках автоматического подключения.