Разработка и Конфигурация · 10 мин
Начать отладку в конфигураторе 1С: что это и как работает
Что означает команда «Начать отладку» в конфигураторе 1С: как запустить отладку, поставить точку останова, пошагово выполнить код и найти ошибку в модуле.
«Начать отладку» — это команда в конфигураторе 1С, которая запускает информационную базу в специальном режиме отладки. В этом режиме платформа исполняет код не «вслепую», а под контролем разработчика: можно остановить выполнение в нужной строке, посмотреть значения переменных, пройти код по шагам и понять, где именно возникает ошибка или неверный результат.
Команда находится в меню «Отладка» конфигуратора и продублирована клавишей F5. При её выборе конфигуратор запускает клиентское приложение (обычно тонкий или толстый клиент), подключает к нему отладчик и передаёт управление разработчику. Всё, что пользователь делает в запущенном сеансе, доступно для наблюдения: каждый вызов процедуры, каждое изменение данных, каждый запрос к базе.
Отладка — основной инструмент поиска ошибок в прикладных решениях. Без неё приходится гадать, почему документ не проводится, отчёт выдаёт неверные цифры или обработка завершается с исключением. С отладчиком причина находится системно: вы останавливаетесь в подозрительном месте и смотрите фактическое состояние данных.
Что происходит при запуске отладки
Когда вы нажимаете F5 или выбираете «Отладка — Начать отладку», конфигуратор выполняет несколько действий. Сначала проверяется, не изменялась ли конфигурация базы данных: если изменения не сохранены в базу, платформа предложит обновить конфигурацию базы данных, иначе отлаживаться будет старый код. Затем запускается клиентское приложение с параметром, включающим отладку, и устанавливается соединение между отладчиком и исполняемым кодом.
В клиент-серверном варианте код может исполняться на сервере 1С:Предприятия, и тогда отладку на сервере должен разрешать администратор кластера (параметр запуска сервера с ключом отладки). Если серверная отладка не включена, точки останова в серверных процедурах просто не сработают — код выполнится без остановки, и это частая причина «непонятного поведения» отладчика.
Запущенный сеанс выглядит как обычное приложение 1С. Разница в том, что конфигуратор остаётся связанным с ним: как только выполнение дойдёт до точки останова, управление перейдёт в конфигуратор, а клиент «зависнет» в ожидании команд разработчика.
Как начать отладку: пошаговый порядок
Стандартный сценарий выглядит так. Откройте конфигуратор нужной информационной базы, убедитесь, что конфигурация базы данных обновлена. Затем нажмите F5 или выберите пункт меню «Отладка — Начать отладку». Платформа запустит клиентское приложение, и вы сможете выполнять в нём действия, которые хотите исследовать: открыть документ, провести его, сформировать отчёт.
Если нужно отладить конкретное действие, заранее расставьте точки останова в тех строках кода, где хотите остановиться. Точка ставится щелчком по левому полю редактора модуля или клавишей F9 на нужной строке — рядом появляется красный маркер. После этого выполните в клиенте действие, которое вызывает этот код, и платформа остановится на отмеченной строке.
- 1Откройте конфигуратор и обновите конфигурацию базы данных (F7), если были изменения
- 2Поставьте точки останова (F9) в строках кода, которые нужно проверить
- 3Нажмите F5 или «Отладка — Начать отладку» — запустится клиентское приложение
- 4Выполните в клиенте действие, вызывающее интересующий код
- 5Дождитесь остановки на точке: конфигуратор покажет текущую строку и состояние переменных
- 6Пройдите код по шагам (F10 — шаг через, F11 — шаг внутрь) и проверьте значения
Основные приёмы работы в режиме отладки
После остановки на точке доступны команды пошагового выполнения. «Шаг через» (F10) выполняет текущую строку целиком, не заходя внутрь вызываемых процедур. «Шаг внутрь» (F11) переходит внутрь вызываемой процедуры или функции. «Шаг из» (Shift+F11) доводит текущую процедуру до конца и останавливается в вызывающем коде. «Продолжить» (F5) возобновляет выполнение до следующей точки останова.
Значения переменных смотрятся двумя способами: наведением курсора на имя переменной в коде (всплывающая подсказка) или через окно «Вычислить выражение» (Shift+F9), где можно ввести любое выражение встроенного языка и увидеть результат. Табло (окно наблюдения) позволяет держать набор выражений постоянно на виду: их значения обновляются на каждом шаге.
Полезны и дополнительные инструменты: стек вызовов показывает цепочку процедур, приведшую к текущей точке; точки останова можно делать условными (сработают только при выполнении условия, например когда переменная равна конкретному значению); остановку по ошибке включают, чтобы платформа сама прервалась в момент возникновения исключения.
Типичные сценарии использования
Поиск причины ошибки при проведении документа
Ставите точку останова в обработчике «ОбработкаПроведения» модуля документа, запускаете отладку и проводите проблемный документ в клиенте. Пошагово проходя код, видите, на какой строке возникает исключение или где формируется неверное движение по регистру. Стек вызовов покажет, если ошибка пришла из общего модуля, вызванного внутри обработчика.
Проверка результата запроса
Через «Вычислить выражение» можно посмотреть результат запроса до его обхода: выгрузить результат в таблицу значений и изучить её содержимое прямо в отладчике. Так быстро проверяется, вернула ли выборка ожидаемые строки, прежде чем искать ошибку в логике обхода.
Отладка внешних обработок и отчётов
Внешняя обработка открывается прямо в конфигураторе («Файл — Открыть»), точки расставляются в её модуле, после чего обработка запускается в отлаживаемом сеансе. Платформа остановится на точках, хотя объект не входит в состав конфигурации.
Если точка останова не срабатывает, в первую очередь проверьте три вещи: обновлена ли конфигурация базы данных, исполняется ли код на сервере без включённой серверной отладки и не стоит ли точка в ветке кода, которая реально не выполняется (например, внутри условия, которое всегда ложно).
Ограничения и риски
Отладка не изменяет логику данных сама по себе, но действия, выполняемые в отлаживаемом сеансе, — настоящие. Если вы проводите документ в режиме отладки, движения записываются в базу. Поэтому эксперименты безопасно проводить только на копии рабочей базы или в тестовой среде, а не в продуктивной базе с реальными данными.
Есть и технические ограничения. Фоновые задания и регламентные задания отлаживаются отдельно: их нужно подключать через «Отладка — Подключение» к конкретному сеансу. Код, исполняемый на сервере в клиент-серверном варианте, требует включённого режима отладки на сервере. Некоторые механизмы (например, код в момент аутентификации) отладить обычным способом сложно — там помогают журнал регистрации и вывод сообщений.
Типичные ошибки начинающих
Самая частая ошибка — забыть обновить конфигурацию базы данных после правки модуля. Внешне всё выглядит нормально: точки стоят, отладка запускается, но остановка происходит не там, или код ведёт себя «по-старому». Второй типичный случай — точка в клиентской процедуре, когда реальная логика ушла в серверный вызов: разработчик шагает по обвязке, а содержательный код остаётся невидимым.
Ещё одна ошибка — останавливать отладку кнопкой «Завершить сеанс» в середине транзакции и затем удивляться блокировкам или незавершённым операциям. Корректнее довести выполнение до конца или осознанно прервать, понимая, что транзакция откатится.
Как проверить, что отладка работает правильно
Простая проверка: поставьте точку останова на первой строке заведомо вызываемой процедуры (например, обработчика команды формы), запустите отладку и выполните действие. Если конфигуратор перешёл в режим остановки и подсветил текущую строку жёлтым — связка работает. Если код выполнился без остановки, проблема в одном из перечисленных выше условий.
Как проверить результат
Конфигуратор подсвечивает текущую строку, клиент ждёт команд
Код выполнился без остановки — проверить обновление конфигурации и серверную отладку
В «Вычислить выражение» отображаются актуальные значения текущего контекста
Ошибка «переменная не определена» — выражение вычисляется вне области видимости
Действия выполнялись в тестовой базе, продуктив не затронут
Пробные проведения документов попали в рабочую базу
Частые вопросы
Чем «Начать отладку» отличается от «Начать отладку HTTP»?
Обычный запуск отлаживает код клиентского приложения и сервера. Отладка HTTP (и веб-сервисов) нужна, когда код вызывается извне — через веб-сервисы, HTTP-сервисы или веб-клиент. Тогда конфигуратор ждёт входящее соединение и останавливается на точках при обращении к сервису.
Почему точка останова стала пустым кружком и не срабатывает?
Пустой (неактивный) маркер означает, что точка стоит в строке, которой нет в исполняемой версии кода: конфигурация базы данных не обновлена, строка удалена или находится в комментарии. Обновите конфигурацию (F7) и переставьте точку.
Можно ли отладить код, который выполняется в фоновом задании?
Да. Через «Отладка — Подключение» откройте список доступных предметов отладки, найдите сеанс фонового задания и подключите его. После этого точки останова в коде фонового задания начнут срабатывать.
Что делать, если ошибка возникает только у конкретного пользователя?
Запустите отладку и войдите в сеанс под этим пользователем (или подключитесь к его сеансу через «Отладка — Подключение», если он работает в отладочном режиме). Часто причина в правах, настройках пользователя или его данных, которые не воспроизводятся под администратором.
Замедляет ли отладка работу базы?
На файловой базе влияние незаметно, если отлаживает один разработчик. Включённый режим отладки на сервере 1С заметно снижает производительность всего кластера, поэтому в продуктивной среде его включают только на время диагностики и сразу выключают.
Можно ли изменить значение переменной прямо во время отладки?
Да, в окне «Вычислить выражение» или табло можно присвоить переменной новое значение и продолжить выполнение уже с ним. Это удобно для проверки гипотез: не перезапуская сеанс, посмотреть, как код поведёт себя при других входных данных.
Что важно запомнить
«Начать отладку» (F5) запускает базу под контролем отладчика: точки останова (F9), пошаговое выполнение (F10/F11) и просмотр переменных позволяют найти причину ошибки. Перед запуском обновляйте конфигурацию базы данных, для серверного кода включайте серверную отладку, а эксперименты проводите только на копии базы.