Разработка и Конфигурация · 9 мин
Как включить отладку в 1С: настройка и запуск
Как включить отладку в 1С: настройка конфигуратора, запуск отладки на клиенте и сервере, точки останова, типичные ошибки и проверка результата.
Отладка в 1С — основной инструмент поиска ошибок в коде конфигурации. Она позволяет остановить выполнение программы в нужной строке, посмотреть значения переменных, пройти код по шагам и понять, почему обработка ведёт себя не так, как ожидалось. Без отладки поиск причины ошибки превращается в перебор догадок и бессистемные изменения кода.
Включить отладку можно двумя способами: запустить сеанс прямо из конфигуратора или подключить конфигуратор к уже работающему сеансу пользователя. Первый способ проще и подходит для разработчика, второй нужен, когда ошибка воспроизводится только у конкретного пользователя или в фоновом задании.
Ниже разобраны оба сценария, настройка сервера 1С для клиент-серверного режима, работа с точками останова и типичные причины, по которым отладка «не цепляется» к коду.
Что нужно проверить перед запуском отладки
Перед началом убедитесь, что у учётной записи есть права на конфигурирование и на запуск режима отладки. В настройках пользователя в конфигураторе (Администрирование → Пользователи) должны стоять соответствующие права, иначе кнопки отладки будут недоступны.
Определите режим работы базы: файловый или клиент-серверный. От этого зависит, потребуется ли дополнительная настройка сервера. Посмотреть режим можно в списке информационных баз при запуске 1С — там указан путь к каталогу (файловый режим) или адрес сервера.
Также убедитесь, что конфигурация не находится в режиме «запуск без отладки» по умолчанию: в параметрах запуска базы не должно быть ограничений, а сам конфигуратор должен быть той же версии платформы, что и клиент, с которым воспроизводится ошибка.
Как включить отладку в файловой базе
Файловый режим — самый простой случай, дополнительная настройка сервера не требуется. Откройте конфигуратор нужной базы, авторизуйтесь под пользователем с правами разработчика.
Нажмите клавишу F5 или выберите в меню «Отладка → Начать отладку». Конфигуратор запустит клиентское приложение (тонкий или толстый клиент — в зависимости от настроек запуска) и автоматически подключится к нему для отладки.
Если клиент уже запущен отдельно, подключитесь к нему вручную: «Отладка → Подключение», выберите нужный сеанс в списке и нажмите «Подключить». После этого точки останова в конфигураторе начнут срабатывать при выполнении кода в этом сеансе.
- 1Откройте конфигуратор под пользователем с правами разработчика
- 2Нажмите F5 или «Отладка → Начать отладку»
- 3Дождитесь запуска клиентского приложения
- 4Установите точку останова в нужной строке кода (F9 или клик по полю слева от строки)
- 5Воспроизведите действие в клиенте — выполнение остановится на точке
Как включить отладку в клиент-серверном режиме
В клиент-серверном варианте серверный код выполняется на сервере 1С, и по умолчанию он запущен без поддержки отладки. Чтобы отлаживать серверные процедуры и функции, сервер нужно перезапустить в отладочном режиме.
Для этого в параметрах запуска службы агента сервера 1С добавьте ключ -debug. В Windows это делается через реестр: в ветке службы агента сервера найдите параметр ImagePath и добавьте -debug в строку запуска, затем перезапустите службу. В Linux ключ добавляется в скрипт или unit-файл запуска srv1cv8.
После перезапуска сервера откройте конфигуратор и проверьте настройки базы: «Сервис → Параметры» (или через свойства информационной базы) — режим отладки должен разрешать подключение. Затем запустите отладку через F5 или подключитесь к нужному сеансу через «Отладка → Подключение».
Отладка фоновых заданий и внешних соединений
Фоновые задания выполняются в отдельных сеансах, и к ним нужно подключаться явно. Откройте «Отладка → Подключение», в списке предметов отладки найдите нужный фоновый сеанс (он появится там после запуска задания) и подключитесь до того, как задание завершится.
Чтобы не успеть «опоздать», поставьте точку останова в начале процедуры фонового задания и запускайте задание уже после подключения, либо временно добавьте в код паузу. Для регламентных заданий удобно временно изменить расписание на ближайшее время.
COM-соединения и веб-сервисы отлаживаются аналогично: сеанс внешнего подключения появляется в списке предметов отладки, если на сервере включён режим отладки. Учтите, что для веб-сервисов может потребоваться отладка по протоколу HTTP, которая включается в настройках публикации.
Как выбрать способ подключения
Точки останова, шаги и просмотр значений
Точка останова ставится клавишей F9 или кликом по серому полю слева от строки кода — появляется красный маркер. Когда выполнение доходит до этой строки, программа останавливается, и управление переходит в конфигуратор.
Дальше код проходится по шагам: F11 — шаг с заходом внутрь вызываемых процедур, F10 — шаг в обход (процедура выполнится целиком), Shift+F11 — выйти из текущей процедуры, F5 — продолжить выполнение до следующей точки.
Значения переменных смотрятся в окне «Выражения» (Ctrl+Alt+W) — туда можно добавить любую переменную или произвольное выражение. Также доступны табло (Shift+F9) для разового вычисления и стек вызовов, показывающий, откуда была вызвана текущая процедура.
Если непонятно, где именно возникает проблема, поставьте точку останова с условием: правый клик по точке → условие останова. Например, остановка только когда СуммаДокумента > 1000000. Это избавляет от сотен лишних срабатываний в цикле.
Почему отладка не срабатывает: проверка и типичные ошибки
Самая частая причина — код выполняется на сервере, а сервер запущен без ключа -debug. Признак: точка останова в серверной процедуре отображается как неактивная или просто игнорируется, а клиентский код останавливается нормально.
Вторая причина — конфигуратор подключён к другому сеансу или отладка вообще не запущена. Проверьте статус внизу окна конфигуратора и список подключённых предметов отладки.
Третья группа причин — расхождение версий: конфигуратор открыт от другой базы, изменения конфигурации не сохранены или не обновлена конфигурация базы данных (F7). Точки останова ставятся в текущем тексте модуля конфигуратора, а выполняется код базы — если они различаются, остановка происходит не там или не происходит вовсе.
Как проверить, что отладка работает
В строке состояния видно, что отладка активна и есть подключённые предметы
Надписи об отладке нет, список подключений пуст
Маркер красный, при выполнении кода происходит остановка на строке
Маркер серый/пустой или выполнение проходит мимо
Остановка срабатывает в серверных процедурах
Останавливается только клиентский код — сервер без -debug
FAQ
Можно ли отлаживать код без остановки работы пользователей?
Да, если не требуется перезапуск сервера. Подключение конфигуратора к работающему сеансу и установка точек останова не прерывают работу пользователя, но замедляют его сеанс в момент остановки. Перезапуск сервера для включения -debug — единственный шаг, который разрывает все сеансы.
Почему точка останова отображается серым или с восклицательным знаком?
Это значит, что точка не привязана к исполняемому коду: строка не выполняется (комментарий, объявление переменной), модуль не загружен в отлаживаемом сеансе или текст в конфигураторе расходится с конфигурацией базы данных. Обновите конфигурацию БД и переставьте точку на исполняемый оператор.
Как отладить код, который выполняется только при обмене данными или по расписанию?
Нужно подключиться к сеансу, в котором выполняется обмен или регламентное задание: «Отладка → Подключение» и выбор соответствующего фонового сеанса. Удобно заранее поставить точку останова в начале процедуры и запустить задание вручную из консоли заданий.
Опасно ли оставлять ключ -debug на рабочем сервере?
Это не приведёт к повреждению данных, но снижает производительность сервера и теоретически расширяет поверхность для подключения отладчиком. Рекомендуется убирать ключ и перезапускать службу после завершения поиска проблемы.
Чем отладка отличается от вывода сообщений через Сообщить()?
Сообщить() — это «слепой» метод: вы видите только то, что сами вывели, и код нужно менять и перезапускать. Отладка показывает состояние всех переменных в любой точке без изменения кода, позволяет идти по шагам и смотреть стек вызовов. Для разовой быстрой проверки сообщение проще, для поиска нетривиальной ошибки — только отладка.
Что важно запомнить
В файловой базе отладка включается клавишей F5 из конфигуратора. В клиент-серверном режиме сначала перезапустите сервер с ключом -debug. К фоновым заданиям и чужим сеансам подключайтесь через «Отладка → Подключение». После поиска ошибки отключите отладочный режим на сервере.