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

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

Как пользоваться отладкой в 1С: практическое руководство

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

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

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

Как включить и запустить отладку

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

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

Перед запуском проверьте, что конфигурация базы данных обновлена: отладчик работает с кодом, который реально исполняется. Если вы изменили модуль, но не обновили конфигурацию БД, точки останова могут «съехать» или не сработать.

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

Точки останова: установка и условия

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

Точку можно сделать условной: правый клик по точке → «Условие останова…». Например, условие Контрагент = Неопределено остановит выполнение только когда переменная пуста. Это незаменимо при отладке циклов: вместо сотни остановок вы получите одну — в проблемной итерации.

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

Пошаговое выполнение и навигация по коду

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

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

Команда «Идти до курсора» (Ctrl+F10) выполняет код до строки, где стоит курсор, — быстрый способ пропустить участок без установки временной точки останова.

Просмотр значений: табло, вычисление выражений и локальные переменные

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

Окно «Вычислить выражение» (Shift+F9) подходит для разовой проверки: например, вычислить Запрос.Выполнить().Выгрузить().Количество() или проверить условие, не меняя код. Окно «Локальные переменные» автоматически показывает все переменные текущей процедуры — удобно для обзора, когда не знаете, что именно искать.

Типичные ошибки
01
Отладка не обновлённой конфигурации: код в редакторе отличается от исполняемого, точки останова не срабатывают. Решение — обновить конфигурацию БД перед запуском.
02
Вычисление в табло выражений с побочными эффектами (например, Записать()): вызов меняет данные прямо во время отладки. Вычисляйте только читающие выражения.
03
Поиск ошибки только в точке падения: причина часто выше по стеку вызовов — проверяйте параметры вызывающих процедур.
04
Оставленные точки останова в рабочем коде после разбора: следующий сеанс отладки останавливается в неожиданных местах.

Отладка в клиент-серверном режиме и фоновых заданий

В клиент-серверном варианте серверный код выполняется на сервере 1С, и по умолчанию отладка сервера выключена. Включите её в консоли кластера: свойства сервера → флаг «Разрешена отладка» и указание протокола (TCP или HTTP). После изменения перезапустите агент сервера. В файловом режиме этот шаг не нужен.

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

Для внешних обработок и отчётов откройте файл в конфигураторе («Файл» → «Открыть»), поставьте точки останова и запустите отладку — обработка откроется в клиенте, и точки сработают. Тот же подход работает для HTTP-сервисов и веб-сервисов: предмет отладки появляется при обращении к сервису.

Отладка на мобильной платформе и внешних соединений

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

Автоматическое подключение настраивается в том же диалоге параметров: отметьте типы предметов отладки (клиент, сервер, фоновые задания, HTTP-сервисы), которые отладчик должен подхватывать автоматически при старте. Это избавляет от ручного подключения при каждом перезапуске.

Маршрут решения

Как выбрать действие

Точка останова не срабатывает в файловой базеОбновите конфигурацию БД и проверьте, что отлаживаемый код реально вызывается
Не останавливается серверный код в клиент-серверном режимеВключите отладку в свойствах сервера в консоли кластера и перезапустите агент
Нужно отладить уже запущенный сеансИспользуйте «Отладка» → «Подключение…» и выберите сеанс в списке
Ошибка возникает, но место неизвестноВключите «Остановка по ошибке» и изучите стек вызовов в момент исключения

Частые проблемы и их решение

Если отладчик запущен, но остановки нет, проверьте три вещи: обновлена ли конфигурация БД, тот ли это сеанс (код может выполняться в другом сеансе или фоновом задании) и не отключены ли точки останова глобально. В клиент-серверном режиме добавьте к этому проверку флага отладки на сервере.

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

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

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

Запуск отладки
Норма

Клиент 1С стартует из конфигуратора, в строке состояния виден режим отладки

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

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

Срабатывание точки останова
Норма

Выполнение останавливается, строка подсвечена жёлтым

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

Точка серая или выполнение проходит мимо — код не вызывается или БД не обновлена

Значения переменных
Норма

В табло и окне локальных переменных отображаются актуальные значения

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

Значения не соответствуют ожиданиям — проверьте контекст (клиент/сервер) и стек вызовов

FAQ

Почему точка останова не срабатывает, хотя код точно выполняется?

Чаще всего конфигурация базы данных не обновлена после изменения модуля — отладчик работает с исполняемым кодом, а не с текстом в редакторе. Обновите конфигурацию (F7) и повторите. Также проверьте, не выполняется ли код в другом сеансе или фоновом задании, к которому отладчик не подключён.

Как отладить код, который выполняется на сервере?

В файловом режиме серверный код отлаживается автоматически. В клиент-серверном нужно включить отладку в консоли кластера (свойства сервера → «Разрешена отладка») и перезапустить агент сервера. После этого серверные вызовы появятся в списке предметов отладки.

Можно ли изменить значение переменной во время отладки?

Да. В окне «Табло» или «Вычислить выражение» выполните присваивание, например Количество = 10, — переменная изменится, и дальнейшее выполнение пойдёт с новым значением. Это удобно для проверки гипотез без перезапуска сеанса.

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

Используйте автоматическое подключение: в параметрах отладки отметьте «Фоновые задания» в списке автоматически подключаемых предметов. Тогда отладчик подхватит задание сразу при старте. Альтернатива — временно запускать ту же процедуру синхронно из отладочного сеанса.

Опасно ли включать отладку на рабочей базе?

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

Чем отличаются «Шагнуть в» и «Шагнуть через»?

«Шагнуть в» (F11) заходит внутрь вызываемой процедуры или функции. «Шагнуть через» (F10) выполняет вызов целиком и останавливается на следующей строке текущей процедуры. Используйте F10, когда вызов заведомо корректен, и F11 — когда подозрение падает на вызываемый код.

Итог

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

Отладка запускается клавишей F5 из конфигуратора, точки останова ставятся клавишей F9, навигация по коду — F10/F11. Значения смотрятся в табло и окне локальных переменных, причину ошибки ищите по стеку вызовов. Для серверного кода в клиент-серверном режиме включите отладку на сервере, а на рабочих базах отладку используйте с осторожностью.