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

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

Отладка в 1С: где находится и как ею пользоваться

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

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

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

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

Где находится отладка в конфигураторе 1С

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

Быстрый запуск — клавиша F5. Она компилирует изменённые модули и открывает сеанс «1С:Предприятие», уже подключённый к отладчику. Комбинация Ctrl+F5 запускает приложение без отладки — удобно, когда нужно просто проверить поведение без остановок.

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

Как включить отладку в режиме «1С:Предприятие»

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

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

Если нужно, чтобы отладка была разрешена всегда при запуске, используйте параметр командной строки /debug при старте клиента. Для протокола HTTP добавляется указание адреса отладчика. Это удобно для ярлыков тестовых баз, где отладка нужна постоянно.

Включение отладки в запущенном сеансе
  1. 1
    Откройте главное меню сеанса 1С:Предприятие
  2. 2
    Перейдите в Сервис → Параметры
  3. 3
    Установите флаг «Разрешить отладку в текущем сеансе»
  4. 4
    При необходимости выберите протокол отладки (HTTP или TCP)
  5. 5
    В конфигураторе откройте Отладка → Подключение и выберите сеанс

Как включить отладку на сервере 1С

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

Для Windows-сервера откройте реестр и найдите параметр ImagePath службы агента сервера 1С (ветка HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, служба агента нужной версии платформы). В строку запуска добавьте ключ -debug, а при использовании HTTP-отладки — -debug -http. После изменения перезапустите службу агента сервера.

На Linux-сервере параметр -debug добавляется в скрипт запуска агента (srv1cv8) или в unit-файл systemd. После правки перезапустите службу. Учтите: режим отладки снижает производительность сервера, поэтому на продуктивных базах его включают временно и выключают после завершения работ.

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

Точка останова ставится кликом мыши по серой полосе слева от строки кода в редакторе модуля или клавишей F9. Красный кружок означает активную точку. Когда выполнение доходит до этой строки, сеанс «замирает», а конфигуратор показывает текущую позицию и состояние переменных.

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

Чтобы посмотреть значения переменных, наведите курсор на имя переменной в коде либо откройте панель «Вычислить выражение» (Shift+F9) и «Табло» (через меню «Отладка»). В табло можно добавить несколько выражений и наблюдать, как они меняются при пошаговом выполнении.

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

Отладка фоновых заданий, веб-сервисов и внешних обработок

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

Для отладки веб-сервисов и HTTP-сервисов механика та же: сервер должен работать в режиме отладки, а сеанс веб-сервиса появится в списке подключения в момент обращения к нему. Удобно поставить точку останова в первой строке функции сервиса и затем отправить тестовый запрос.

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

Почему отладка не срабатывает: типичные причины

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

Отдельный случай — клиент-серверное разделение. Код с директивой &НаСервере выполняется на сервере, и без ключа -debug он недоступен отладчику. Код &НаКлиенте отлаживается в клиентском сеансе, но тонкий и веб-клиенты требуют разрешения отладки в параметрах сеанса.

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

Типичные ошибки
01
Отладка серверного кода без ключа -debug на сервере — точки останова молча игнорируются
02
Забытое обновление конфигурации БД (F7) — отлаживается старая версия модуля
03
Попытка поймать фоновое задание через F5 — задание выполняется в отдельном сеансе, нужно подключение
04
Разные протоколы отладки на сервере и клиенте — сеансы не видны в списке подключения
05
Оставленный режим -debug на продуктивном сервере — снижение производительности для всех пользователей
Маршрут решения

Как выбрать способ отладки

Код выполняется в вашем клиентском сеансеЗапустите отладку клавишей F5 из конфигуратора
Код выполняется на сервере (&НаСервере, фоновые задания)Включите -debug на сервере и подключитесь через Отладка → Подключение
Нужно отладить уже открытый сеанс пользователяВключите отладку в Сервис → Параметры сеанса и подключитесь из конфигуратора
Нет доступа к конфигуратору или серверуИспользуйте Сообщить() и журнал регистрации как временную альтернативу

FAQ

Где находится кнопка отладки в 1С:Предприятие?

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

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

Сервер 1С запущен без режима отладки. Добавьте параметр -debug в строку запуска службы агента сервера и перезапустите её. Также проверьте, что конфигурация базы данных обновлена (F7 в конфигураторе).

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

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

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

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

Влияет ли режим отладки на работу пользователей?

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

Чем заменить отладчик, если конфигуратор недоступен?

Используйте вывод диагностических сообщений через Сообщить(), запись в журнал регистрации через ЗаписьЖурналаРегистрации() или сохранение промежуточных данных в файл. Это грубее пошаговой отладки, но позволяет локализовать проблемное место.

Итог

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

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