Разработка и Конфигурация · 9 мин
Как проверить и настроить отладку (debug) в 1С
Как включить и проверить режим отладки в 1С: настройка конфигуратора, точки останова, подключение к серверу 1С, отладка фоновых заданий и веб-клиента.
Отладка в 1С — основной инструмент разработчика и внедренца для поиска ошибок в коде, проверки алгоритмов и анализа поведения конфигурации. Чтобы проверить, работает ли debug-режим, нужно убедиться в трёх вещах: отладка разрешена в настройках базы, конфигуратор подключён к нужному сеансу, а точки останова реально срабатывают при выполнении кода.
Конкретная процедура зависит от режима работы: файловая база, клиент-серверный вариант, тонкий или веб-клиент, фоновые задания и внешние соединения настраиваются по-разному. Ниже разобраны все основные сценарии с точными действиями и способами проверки результата.
Важно понимать: отладка на рабочей (продуктивной) базе — потенциально рискованная операция. Остановка выполнения кода на точке останова блокирует сеанс пользователя, а отладка на сервере может потребовать перезапуска службы агента. Поэтому перед началом убедитесь, что работаете на тестовой копии или осознаёте последствия.
Что нужно проверить перед началом отладки
Прежде чем искать причину, почему точка останова не срабатывает, убедитесь в базовых условиях. Во-первых, конфигурация должна быть открыта в конфигураторе той же базы, в которой вы запускаете клиентское приложение. Во-вторых, у пользователя должны быть права на отладку — в типовых конфигурациях это роль «Администратор системы» или полные права.
В-третьих, проверьте, не включён ли режим «Защита от опасных действий» и не запрещена ли отладка на уровне настроек информационной базы. В файловом варианте отладка обычно работает сразу, а в клиент-серверном требует отдельной настройки сервера.
Проверьте список подключённых предметов отладки: Отладка → Подключение
Проверьте права пользователя и что конфигуратор открыт именно в этой базе
Проверьте параметры службы агента сервера 1С
Как запустить отладку в файловой базе
Файловый вариант — самый простой для проверки debug-режима. Откройте конфигуратор, найдите нужный модуль (например, модуль объекта документа или общий модуль) и установите точку останова: щёлкните слева от номера строки или нажмите F9 на нужной строке. Появится красный маркер.
Далее запустите отладку: меню «Отладка → Начать отладку» или клавиша F5. Конфигуратор предложит выбрать тип клиента — толстый, тонкий или веб-клиент. После запуска клиентского приложения выполните действие, которое вызывает отлаживаемый код: например, проведите документ или нажмите кнопку.
Если выполнение остановилось на точке останова и конфигуратор показал окно с текущей строкой — отладка работает корректно. Можно просматривать значения переменных через «Вычислить выражение» (Shift+F9) и пошагово выполнять код клавишами F10 (шаг через) и F11 (шаг внутрь).
- 1Откройте конфигуратор нужной базы
- 2Поставьте точку останова (F9) в нужном модуле
- 3Нажмите F5 и выберите тип клиента
- 4Выполните в клиенте действие, вызывающее код
- 5Убедитесь, что выполнение остановилось на точке
- 6Проверьте значения переменных через Shift+F9
Как включить отладку на сервере 1С
В клиент-серверном варианте весь серверный код выполняется процессом rphost на сервере 1С:Предприятие. По умолчанию сервер запускается без поддержки отладки, и точки останова в серверных процедурах просто игнорируются. Это самая частая причина «неработающего» debug.
Чтобы включить отладку, остановите службу агента сервера 1С и добавьте в параметры запуска ключ -debug. В Windows это делается через реестр: в ветке службы агента (например, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent) найдите параметр ImagePath и добавьте -debug в строку запуска. После этого перезапустите службу.
Альтернатива без перезапуска — запуск агента вручную из командной строки с нужными параметрами, но это подходит только для тестовых стендов. На продуктивном сервере перезапуск службы прерывает работу всех пользователей кластера, поэтому планируйте операцию на нерабочее время.
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)" && sc start "1C:Enterprise 8.3 Server Agent (x86-64)"Как подключить отладчик к нужному сеансу
Часто клиентское приложение уже запущено, и перезапускать его через F5 неудобно — например, ошибка воспроизводится только у конкретного пользователя или в конкретном сеансе. В этом случае используйте подключение отладчика: меню «Отладка → Подключение».
В открывшемся окне отобразится список доступных предметов отладки — сеансов, фоновых заданий и внешних соединений. Если список пуст, проверьте настройки в «Отладка → Настройка»: там должны быть отмечены нужные типы предметов отладки (тонкий клиент, сервер, фоновые задания и т.д.). Отметьте нужный сеанс галочкой и нажмите «Подключить».
Для отладки фоновых заданий есть важная особенность: задание должно запуститься уже после того, как отладчик настроен на его ожидание. Поэтому сначала включите автоматическое подключение к фоновым заданиям в настройках отладки, а затем инициируйте запуск задания.
Отладка HTTP-сервисов и веб-клиента
Для отладки HTTP-сервисов, веб-сервисов и веб-клиента включите в настройках отладки соответствующие типы предметов отладки и убедитесь, что публикация на веб-сервере выполнена с разрешением отладки (флажок в диалоге публикации). Затем вызовите сервис или откройте веб-клиент — сеанс появится в списке подключения.
Как проверить, что отладка действительно работает
Самый надёжный способ — контрольный тест. Поставьте точку останова в коде, который гарантированно выполняется: например, в обработчике «ПриСозданииНаСервере» какой-либо формы или в модуле приложения при запуске. Запустите отладку и откройте эту форму.
Если выполнение остановилось — цепочка «клиент → сервер → отладчик» работает. Если нет, проверяйте по шагам: срабатывает ли точка в клиентском коде (значит, проблема в серверной части), виден ли сеанс в списке подключения, запущен ли сервер с ключом -debug.
Как проверить результат
Выполнение останавливается, видны значения переменных
Точка игнорируется — отладчик не подключён к сеансу
Останавливается и в файловой, и в серверной базе
Работает только в файловой — сервер без ключа -debug
Видны активные сеансы и фоновые задания
Список пуст — проверьте настройки отладки и права
Типичные ошибки при проверке отладки
Одна из частых ошибок — попытка отладить код, который выполняется в другом контексте. Например, точка поставлена в клиентской процедуре, а реальная логика ушла в серверный вызов, или код выполняется в фоновом задании, к которому отладчик не подключён.
Вторая ошибка — устаревшая конфигурация базы данных. Если вы изменили модуль в конфигураторе, но не обновили конфигурацию базы данных (F7), клиент выполняет старый код, и точка останова стоит «не в том» тексте модуля. Всегда обновляйте конфигурацию БД перед проверкой.
FAQ: частые вопросы об отладке в 1С
Почему точка останова стала пустой (незакрашенной) и не срабатывает?
Пустой маркер означает, что отладчик не может связать точку с исполняемым кодом. Обычно это происходит из-за расхождения текста модуля в конфигураторе и в базе: обновите конфигурацию базы данных (F7) и перезапустите отладку. Также проверьте, что модуль не открыт из внешней обработки, отличной от запущенной.
Можно ли отлаживать код без конфигуратора?
Нет, встроенный отладчик работает только через конфигуратор. Однако для диагностики без остановки кода используют альтернативы: запись в журнал регистрации, вывод сообщений через Сообщить(), а также внешние инструменты замера производительности.
Как отладить фоновое задание, если оно запускается по расписанию?
Включите в настройках отладки автоматическое подключение фоновых заданий, поставьте точку останова в коде задания и дождитесь его запуска по расписанию либо запустите вручную через консоль заданий. Отладчик подключится к заданию автоматически при его старте.
Отладка замедляет работу сервера — это нормально?
Да, сервер, запущенный с ключом -debug, работает заметно медленнее, а активный отладчик добавляет накладные расходы. Поэтому после завершения работ рекомендуется убрать ключ и перезапустить службу агента, особенно на нагруженных системах.
Что делать, если в списке подключения нет нужного сеанса пользователя?
Проверьте, что в настройках отладки отмечен нужный тип предмета отладки (тонкий клиент, толстый клиент, сервер). Также сеанс может быть запущен под другой базой или на другом кластере серверов — сверьте строку подключения. Для веб-клиента дополнительно проверьте, что публикация выполнена с разрешением отладки.
Что важно запомнить
Проверка отладки сводится к трём шагам: убедитесь, что отладка разрешена (на сервере — ключ -debug), подключите отладчик к нужному сеансу и проверьте срабатывание контрольной точки останова. Работайте на тестовой копии, а после завершения отключайте debug-режим на сервере.