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

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

Как проверить и настроить отладку (debug) в 1С

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

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

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

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

Что нужно проверить перед началом отладки

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

В-третьих, проверьте, не включён ли режим «Защита от опасных действий» и не запрещена ли отладка на уровне настроек информационной базы. В файловом варианте отладка обычно работает сразу, а в клиент-серверном требует отдельной настройки сервера.

Точка останова не срабатываетОтладчик не подключён к сеансу

Проверьте список подключённых предметов отладки: Отладка → Подключение

Кнопка «Начать отладку» неактивнаНет прав или база не та

Проверьте права пользователя и что конфигуратор открыт именно в этой базе

Отладка работает в файловой, но не в серверной базеСервер запущен без ключа -debug

Проверьте параметры службы агента сервера 1С

Как запустить отладку в файловой базе

Файловый вариант — самый простой для проверки debug-режима. Откройте конфигуратор, найдите нужный модуль (например, модуль объекта документа или общий модуль) и установите точку останова: щёлкните слева от номера строки или нажмите F9 на нужной строке. Появится красный маркер.

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

Если выполнение остановилось на точке останова и конфигуратор показал окно с текущей строкой — отладка работает корректно. Можно просматривать значения переменных через «Вычислить выражение» (Shift+F9) и пошагово выполнять код клавишами F10 (шаг через) и F11 (шаг внутрь).

Порядок действий для файловой базы
  1. 1
    Откройте конфигуратор нужной базы
  2. 2
    Поставьте точку останова (F9) в нужном модуле
  3. 3
    Нажмите F5 и выберите тип клиента
  4. 4
    Выполните в клиенте действие, вызывающее код
  5. 5
    Убедитесь, что выполнение остановилось на точке
  6. 6
    Проверьте значения переменных через Shift+F9

Как включить отладку на сервере 1С

В клиент-серверном варианте весь серверный код выполняется процессом rphost на сервере 1С:Предприятие. По умолчанию сервер запускается без поддержки отладки, и точки останова в серверных процедурах просто игнорируются. Это самая частая причина «неработающего» debug.

Чтобы включить отладку, остановите службу агента сервера 1С и добавьте в параметры запуска ключ -debug. В Windows это делается через реестр: в ветке службы агента (например, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent) найдите параметр ImagePath и добавьте -debug в строку запуска. После этого перезапустите службу.

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

bash
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), клиент выполняет старый код, и точка останова стоит «не в том» тексте модуля. Всегда обновляйте конфигурацию БД перед проверкой.

Типичные ошибки
01
Точка в коде, который не выполняется: проверьте условия и ветку алгоритма, в которую реально попадает программа
02
Забыли обновить конфигурацию БД (F7) после изменения модуля — отлаживается старая версия кода
03
Отладка серверного кода без ключа -debug на сервере — точки молча игнорируются
04
Остановка на точке в продуктивном сеансе — пользователь «завис», пока вы разбираете переменные

FAQ: частые вопросы об отладке в 1С

Почему точка останова стала пустой (незакрашенной) и не срабатывает?

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

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

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

Как отладить фоновое задание, если оно запускается по расписанию?

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

Отладка замедляет работу сервера — это нормально?

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

Что делать, если в списке подключения нет нужного сеанса пользователя?

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

Итог

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

Проверка отладки сводится к трём шагам: убедитесь, что отладка разрешена (на сервере — ключ -debug), подключите отладчик к нужному сеансу и проверьте срабатывание контрольной точки останова. Работайте на тестовой копии, а после завершения отключайте debug-режим на сервере.