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

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

Для чего нужна отладка в 1С и как ей пользоваться

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

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

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

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

Какие задачи решает отладка на практике

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

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

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

Неверный результат без ошибкиЛогическая ошибка

Пошагово проверить вычисления и условия в отладчике

Ошибка у одного пользователяЗависимость от данных или прав

Подключиться к сеансу этого пользователя и повторить действие

Медленная работа отчётаНеоптимальный запрос или цикл

Выполнить замер производительности

Обмен не переносит часть данныхОшибка в правилах конвертации

Отладить обработчики правил обмена

Какие инструменты отладки есть в платформе

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

Отдельно стоит упомянуть замер производительности. Он показывает, сколько времени заняла каждая строка кода и сколько раз она выполнялась. Это главный инструмент, когда проблема не в ошибке, а в скорости: видно, что 90% времени отчёта уходит на один запрос внутри цикла.

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

Как запустить отладку: базовый порядок действий

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

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

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

Типичные сценарии использования

Разбор ошибки проведения документа

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

Отладка обменов и фоновых заданий

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

Проверка доработки перед переносом

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

Ограничения и риски отладки

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

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

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

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

Как проверить, что проблема решена

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

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

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

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

Исходный сценарий
Норма

Ошибка не воспроизводится, результат корректен

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

Ошибка ушла, но результат изменился непредсказуемо

Смежные функции
Норма

Связанные отчёты и документы работают как раньше

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

Появились новые ошибки там, где их не было

Права пользователя
Норма

Под учётной записью пользователя всё работает

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

Исправление проверено только под полными правами

Часто задаваемые вопросы

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

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

Можно ли отладить код, который выполняется у другого пользователя?

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

Чем отличается замер производительности от обычной отладки?

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

Опасно ли менять значения переменных в отладчике?

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

Что делать, если ошибку нельзя воспроизвести в тестовой базе?

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

Нужна ли отладка, если есть сообщения об ошибках?

Сообщение об ошибке показывает следствие, а не причину: оно говорит, что значение не заполнено, но не объясняет, почему оно не заполнилось на пяти предыдущих шагах алгоритма. Отладка как раз и восстанавливает эту цепочку.

Итог

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

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