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

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

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

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

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

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

Ниже разобраны оба сценария, настройка сервера 1С для клиент-серверного режима, работа с точками останова и типичные причины, по которым отладка «не цепляется» к коду.

Что нужно проверить перед запуском отладки

Перед началом убедитесь, что у учётной записи есть права на конфигурирование и на запуск режима отладки. В настройках пользователя в конфигураторе (Администрирование → Пользователи) должны стоять соответствующие права, иначе кнопки отладки будут недоступны.

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

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

Как включить отладку в файловой базе

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

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

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

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

Как включить отладку в клиент-серверном режиме

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

Для этого в параметрах запуска службы агента сервера 1С добавьте ключ -debug. В Windows это делается через реестр: в ветке службы агента сервера найдите параметр ImagePath и добавьте -debug в строку запуска, затем перезапустите службу. В Linux ключ добавляется в скрипт или unit-файл запуска srv1cv8.

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

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

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

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

COM-соединения и веб-сервисы отлаживаются аналогично: сеанс внешнего подключения появляется в списке предметов отладки, если на сервере включён режим отладки. Учтите, что для веб-сервисов может потребоваться отладка по протоколу HTTP, которая включается в настройках публикации.

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

Как выбрать способ подключения

Ошибка воспроизводится у вас при ручном действииЗапустите отладку через F5 из конфигуратора
Ошибка возникает только у конкретного пользователяПопросите его запустить сеанс и подключитесь через «Отладка → Подключение»
Падает фоновое или регламентное заданиеПодключитесь к сеансу фонового задания и поставьте точку останова в начале процедуры
Код выполняется на сервере в клиент-серверной базеСначала перезапустите сервер с ключом -debug

Точки останова, шаги и просмотр значений

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

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

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

Если непонятно, где именно возникает проблема, поставьте точку останова с условием: правый клик по точке → условие останова. Например, остановка только когда СуммаДокумента > 1000000. Это избавляет от сотен лишних срабатываний в цикле.
ПЗ
Практическое замечание

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

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

Вторая причина — конфигуратор подключён к другому сеансу или отладка вообще не запущена. Проверьте статус внизу окна конфигуратора и список подключённых предметов отладки.

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

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

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

Индикатор в конфигураторе
Норма

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

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

Надписи об отладке нет, список подключений пуст

Точка останова
Норма

Маркер красный, при выполнении кода происходит остановка на строке

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

Маркер серый/пустой или выполнение проходит мимо

Серверный код
Норма

Остановка срабатывает в серверных процедурах

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

Останавливается только клиентский код — сервер без -debug

FAQ

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

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

Почему точка останова отображается серым или с восклицательным знаком?

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

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

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

Опасно ли оставлять ключ -debug на рабочем сервере?

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

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

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

Итог

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

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