← Назад к вопросам

Что такое отладчик в 1С и как им пользоваться?

1.0 Junior🔥 221 комментариев
#Опыт и софт-скиллы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Отладчик в 1С: Использование и возможности

Отладчик (Debugger) — это встроенный инструмент 1С для пошагового выполнения кода и анализа ошибок.

Как открыть отладчик

Вариант 1: На клиенте

  • Нажми F7 во время выполнения кода
  • Или через меню: ОтладкаОтладчик

Вариант 2: На сервере (для конфигурации управления)

  • Запусти конфигурацию с параметром /IBConnectionString и /DebugServerPort
  • В браузере отладка работает через F12

Вариант 3: Программная вставка точки останова

Процедура МояПроцедура()
    Х = 10;
    
    // Отладчик остановится здесь при выполнении
    &Отладка; // ← Директива препроцессора
    
    Х = 20;
КонецПроцедуры

Интерфейс отладчика

Основные компоненты:

  1. Окно кода — текущий код с выделенной строкой
  2. Вкладка Стек вызовов — иерархия функций/процедур
  3. Вкладка Переменные — текущие значения переменных
  4. Вкладка Выражения — результаты введённых выражений
  5. Вкладка Точки останова — список установленных точек

Управление выполнением кода

Основные команды:

F9         → Установить/удалить точку останова на текущую строку
Ctrl+F9    → Удалить все точки останова

F11        → Шаг в процедуру (заходит внутрь вызова)
F10        → Шаг над процедурой (обходит вызов)
Ctrl+Shift+F11 → Шаг выхода из процедуры

F5 или Ctrl+F5  → Продолжить выполнение до следующей точки останова
F6             → Выполнить текущую строку

Графически на панели:

[║] [►] [↓→] [↓] [↑] [▪]
Стоп Начать Шаг  Войти Выход Доб.
точка

Работа с переменными

Просмотр значения переменной

Процедура Тест()
    Х = 10;
    Y = 20;
    Z = X + Y;  // ← Установи F9 на эту строку
               // Затем F5 для остановки
               // В вкладке "Переменные" видишь X=10, Y=20
КонецПроцедуры

Быстрый просмотр (Tooltip)

  • Наведи мышку на переменную → видишь её значение в подсказке
  • Для объектов раскрывается структура

Ввод выражений

Вкладка Выражения позволяет добавить отслеживание:

+ Добавить выражение

Х + Y          // Сумма
Элемент[0]     // Элемент массива
Объект.Поле    // Свойство объекта
Длина(Х)       // Функция

Примеры отладки

Пример 1: Поиск ошибки в цикле

Процедура ПроверитьОшибку()
    Массив = Новый Массив();
    
    Для И = 1 По 3 Цикл
        Массив.Добавить(И);  // ← F9 установи точку здесь
    КонецЦикла;
    
    Сообщение = СоздатьСообщение();
    Сообщение.Текст = Массив[0];  // ← F9 установи точку и здесь
    Сообщение.Показать();
КонецПроцедуры

Шаги отладки:

  1. F9 — установи точку на Массив.Добавить(И)
  2. F5 — запусти
  3. На каждом шаге F6 → видишь как растёт массив в вкладке Переменные
  4. F9 вторая точка, F5
  5. Видишь Массив[0] = 1

Пример 2: Отладка запроса

&НаСервере
Процедура ОтладкаЗапроса()
    Запрос = Новый Запрос;  // ← F9 здесь
    Запрос.Текст = 
    "ВЫБРАТЬ Ссылка, Наименование ИЗ Справочник.Товары";
    
    Результат = Запрос.Выполнить();  // ← F9 и F6
    
    Выборка = Результат.Выбрать();  // ← F9 и F6
    
    Пока Выборка.Следующий() Цикл  // ← F9 здесь
        Имя = Выборка.Наименование;  // ← F6 для каждой итерации
    КонецЦикла;
КонецПроцедуры

Проверка:

  • В Переменные видишь содержимое Выборки
  • На каждой итерации цикла видишь текущее значение Имя

Пример 3: Отладка с условной точкой останова

// Клик правой кнопкой на номер строки → Свойства точки
// Условие точки останова:

Для И = 1 По 1000 Цикл
    Если И = 555 Тогда  // ← Останови только когда И=555
        Y = И * 2;      // ← F9 здесь, свойства точки
    КонецЕсли;
КонецЦикла;

Установи условие: И = 555 Тогда отладчик остановится только при И=555

Специальные возможности

Просмотр содержимого таблицы

Таблица = Новая ТаблицаЗначений();
Таблица.Колонки.Добавить("Имя");
Таблица.Колонки.Добавить("Возраст");

Строка1 = Таблица.Добавить();
Строка1.Имя = "Иван";
Строка1.Возраст = 25;

// ← F9 и F5
// В Переменных видишь Таблица с таблицей
// Клик по Таблица → раскрывается полная таблица

Отладка функций

Функция ПолучитьСумму(А, B)
    // ← F9 здесь, F11 заходит внутрь функции
    Результат = А + B;
    Возврат Результат;
КонецФункции

Процедура Тест()
    С = ПолучитьСумму(10, 20);  // ← F9, F11 заходит внутрь функции
КонецПроцедуры

Отладка событий формы

&НаКлиенте
Процедура КнопкаНажатие(Кнопка)
    // ← F9 здесь при нажатии кнопки
    Это.Состояние = 1;
КонецПроцедуры

Нажимаешь кнопку → отладчик останавливается

Лучшие практики отладки

1. Установка точек останова

  • F9 на строке кода перед подозрительной строкой
  • Не только на ошибках, но и на нормальных операциях

2. Шаг за шагом

  • F6 шаг за шагом смотри как изменяются переменные
  • Не спеши, анализируй каждый шаг

3. Вкладка Стек вызовов

  • Показывает иерархию вызовов
  • Двойной клик на строке → переход в тот код

4. Условные точки останова

  • Вместо остановки на каждой итерации задай условие
  • Сэкономит время на больших циклах

5. Отладка на клиенте vs сервере

  • Клиент: F7 или через меню
  • Сервер: требует специальной настройки подключения

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

Ошибка 1: Забываешь что сейчас находишься в отладчике

  • Решение: Помни что код НЕ вернул управление клиенту

Ошибка 2: Останавливаешься перед нужной строкой

  • Решение: Ставь точку на саму проблемную строку

Ошибка 3: Не видишь переменную в списке

  • Решение: Может быть локальная переменная из подпроцедуры

Альтернатива: Логирование

Для длительной отладки используй логирование вместо отладчика:

ЗаписьЖурнала("МояОтладка", ТипСобытияЖурналаРегистрации.Информация, , , 
              "Значение X = " + X + ", Y = " + Y);

Вывод

Отладчик 1С — это мощный инструмент для:

  • Поиска ошибок
  • Анализа логики
  • Проверки значений переменных
  • Отладки сложных алгоритмов

Лучше потратить 10 минут с отладчиком, чем 1 час гадать, что случилось.