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

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

Начать отладку в 1С: что это значит и как это сделать

Что значит начать отладку в 1С, как запустить конфигуратор в режиме отладки, поставить точку останова и пошагово проверить код. Практическая инструкция для новичков.

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

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

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

Что происходит при запуске отладки

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

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

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

Как начать отладку: пошаговый порядок

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

Порядок запуска отладки
  1. 1
    Откройте конфигуратор нужной базы (1С:Предприятие → Конфигуратор).
  2. 2
    Проверьте, что конфигурация открыта: меню «Конфигурация → Открыть конфигурацию».
  3. 3
    Нажмите F5 или выберите «Отладка → Начать отладку». При необходимости подтвердите обновление конфигурации базы данных.
  4. 4
    Дождитесь запуска клиентского приложения — оно откроется как обычный сеанс 1С.
  5. 5
    Вернитесь в конфигуратор, откройте нужный модуль и поставьте точку останова на интересующей строке (F9).
  6. 6
    В клиентском приложении выполните действие, которое вызывает код: проведите документ, сформируйте отчёт, нажмите кнопку.
  7. 7
    Когда выполнение остановится на точке, изучайте переменные и двигайтесь по шагам (F10, F11).

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

Завершается отладка через «Отладка → Завершить» (Shift+F5) или простым закрытием клиентского приложения. После этого сеанс отладки разрывается, и точки останова перестают срабатывать.

Запуск без отладки

Рядом есть команда «Начать без отладки» (Ctrl+F5). Она запускает клиентское приложение из конфигуратора, но без связи с отладчиком. Это удобно, когда нужно просто проверить интерфейс или быстро открыть базу, не нагружая её отладочным механизмом.

Точки останова и пошаговое выполнение

Точка останова — основной инструмент. Ставится кликом по серой полосе слева от строки кода или клавишей F9. Красный кружок означает активную точку. Точку можно сделать условной: например, останавливаться только когда переменная принимает конкретное значение. Для этого используется «Отладка → Точка останова с условием» или свойства точки.

Когда выполнение остановилось, доступны команды пошагового движения:

  • F10 (шаг через) — выполнить текущую строку, не заходя внутрь вызываемых процедур и функций;
  • F11 (шаг в) — зайти внутрь вызываемой процедуры или функции;
  • Shift+F11 (шаг из) — завершить текущую процедуру и остановиться в вызывающем коде;
  • F5 (продолжить) — продолжить выполнение до следующей точки останова или до конца.

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

Как смотреть значения переменных

Остановка на точке имеет смысл только вместе с анализом данных. В конфигураторе для этого есть несколько инструментов.

Вычислить выражение (Shift+F9) — окно, где можно ввести любое выражение встроенного языка и увидеть его значение: переменную, свойство объекта, результат функции. Например, можно проверить Объект.СуммаДокумента или результат запроса.

Табло (Ctrl+Alt+W) — панель, куда добавляют несколько выражений, значения которых обновляются автоматически при каждом шаге. Удобно, когда нужно следить за набором переменных в цикле.

Стек вызовов (Alt+F4 в режиме отладки) — показывает цепочку процедур и функций, которая привела к текущей точке. Помогает понять, откуда был вызван проблемный код — особенно в типовых конфигурациях, где одна операция проходит через десятки общих модулей.

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

Отладка в клиент-серверном варианте и подключение к сеансам

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

Второй важный сценарий — подключение к уже работающему сеансу. Это нужно, когда ошибка возникает у конкретного пользователя или в фоновом задании. Порядок такой: в конфигураторе откройте «Отладка → Подключение», в списке предметов отладки найдите нужный сеанс (видны пользователь, компьютер, тип приложения) и подключитесь. После этого точки останова будут работать в его сеансе.

Чтобы сеанс вообще был доступен для подключения, пользователь должен запустить приложение с разрешением отладки — либо через настройки запуска, либо отладка разрешается на уровне кластера. В типовых инструкциях это частая точка сбоя: сеанс есть в списке, но подключиться нельзя.

Типичные ошибки при работе с отладкой

Типичные ошибки
01
Ставить точку останова в модуле, но запускать действие в другом сеансе — отладчик подключён только к вашему сеансу, и чужие вызовы мимо него проходят.
02
Забыть, что код выполняется на сервере, а отладка на сервере не включена — точка не срабатывает, хотя код реально выполняется.
03
Искать ошибку пошаговым проходом с самого начала процедуры вместо точки останова с условием — в больших циклах это съедает часы.
04
Править код прямо во время остановки и ждать, что изменения подхватятся — изменённые модули требуют перезапуска отладки.
05
Оставлять точки останова и включённый режим отладки на сервере после завершения работ — это лишняя нагрузка и риск неожиданных остановок.

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

Как проверить, что отладка работает

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

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

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

Значок точки останова в редакторе модуля
Норма

Сплошной красный кружок — точка активна

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

Пустой или серый значок — точка недостижима или сеанс не подключён

Список предметов отладки (Отладка → Подключение)
Норма

Виден ваш сеанс с типом клиентского приложения

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

Список пуст или нужного сеанса нет

Остановка на точке при выполнении действия
Норма

Конфигуратор выходит на передний план, текущая строка подсвечена

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

Действие выполняется без остановки — код не вызывается или идёт мимо отладчика

Если все три проверки в норме, инструмент готов к работе. Дальше всё зависит от правильно выбранного места остановки: ставьте точку не «где-то в начале», а непосредственно перед подозрительным участком — так поиск пойдёт быстрее.

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

Чем отличается «Начать отладку» от «Начать без отладки»?

Первая команда (F5) запускает приложение с подключением к отладчику — работают точки останова и пошаговое выполнение. Вторая (Ctrl+F5) просто открывает клиент из конфигуратора без контроля кода, что быстрее и легче для базы.

Почему точка останова не срабатывает?

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

Можно ли отлаживать код на рабочей базе, где работают пользователи?

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

Как отладить фоновое задание или регламентную операцию?

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

Что делать, если нужно остановиться только при определённом значении переменной?

Используйте точку останова с условием: в свойствах точки задайте выражение, например СтрокаТаблицы.Сумма > 100000. Выполнение остановится только когда условие истинно, что экономит время в циклах.

Отладка меняет данные в базе?

Сама по себе — нет, это инструмент наблюдения. Но код, который вы выполняете во время отладки (проведение документа, запись объекта), изменяет данные так же, как при обычной работе. Поэтому эксперименты с записью и проведением делайте на копии базы.

Итог

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

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