Разработка и Конфигурация · 11 мин
Как открыть отладчик 1С: запуск, настройка и подключение к сеансу
Разбираем, как открыть отладчик 1С в конфигураторе и предприятии, включить отладку на сервере, подключиться к сеансу и поставить точку останова.
Отладчик — встроенный инструмент платформы 1С, который позволяет выполнять код по шагам, смотреть значения переменных и находить ошибки в алгоритмах. Он доступен из конфигуратора и не требует установки дополнительных программ, однако для отладки клиент-серверных баз нужно заранее включить режим отладки на сервере. Без этого шага отладчик просто не увидит запущенные сеансы.
Чаще всего отладку открывают двумя способами: запускают базу прямо из конфигуратора в режиме «1С:Предприятие» с автоматическим подключением отладчика либо подключаются к уже работающему сеансу пользователя через пункт «Отладка — Подключение». Первый вариант удобен для проверки своих доработок, второй — когда ошибку нужно воспроизвести в живом сеансе конкретного пользователя.
Важно понимать ограничения: для отладки нужны права на конфигуратор и соответствующие права в информационной базе, а отладка HTTP-сервисов, фоновых заданий и внешних соединений настраивается отдельно. Ниже разобраны все сценарии — от простого запуска до тонких настроек сервера.
Что нужно проверить перед запуском отладчика
Прежде чем открывать отладку, убедитесь, что у вас есть доступ к конфигуратору нужной базы. Если база работает в монопольном режиме у другого пользователя или конфигуратор заблокирован обновлением, войти не получится. Также проверьте, что ваша учётная запись имеет право «Администрирование» или хотя бы доступ к конфигуратору — без этого пункты отладки будут недоступны.
Второе условие — тип базы. Файловая база отлаживается сразу, без дополнительной настройки. Клиент-серверная база требует, чтобы агент сервера 1С был запущен с ключом отладки. Если вы не администрируете сервер самостоятельно, уточните у администратора, включён ли режим отладки, иначе список сеансов для подключения будет пустым.
Третий момент — версия платформы. Отладчик конфигуратора должен соответствовать версии платформы, под которой запущено приложение. Если пользователи работают под одной версией, а конфигуратор открыт под другой, подключение к сеансу завершится ошибкой.
Права учётной записи и отсутствие блокировок базы
Для серверной нужен ключ -debug на агенте сервера
Иначе подключение к предмету отладки невозможно
Как открыть отладчик через запуск из конфигуратора
Самый простой способ — запустить базу в режиме отладки напрямую из конфигуратора. Откройте конфигуратор нужной базы, авторизуйтесь и нажмите клавишу F5 или выберите в меню «Отладка — Начать отладку». Платформа запустит «1С:Предприятие» и автоматически подключит отладчик к этому сеансу.
Если нужно запустить сеанс под другим пользователем или с особыми параметрами, используйте пункт «Отладка — Параметры запуска» либо настройку «Сервис — Параметры», где задаётся вид клиента (тонкий, толстый, веб-клиент) и параметры командной строки. Это удобно, когда ошибка воспроизводится только в тонком клиенте или только под определённой ролью.
После запуска откройте в конфигураторе нужный модуль, поставьте точку останова кликом по левому полю строки или клавишей F9 и выполните в запущенном приложении действие, которое вызывает этот код. Выполнение остановится на точке, и вы сможете пошагово пройти алгоритм клавишами F10 (шаг через), F11 (шаг внутрь) и Shift+F11 (шаг наружу).
- 1Откройте конфигуратор и авторизуйтесь в базе
- 2Нажмите F5 или выберите «Отладка — Начать отладку»
- 3Дождитесь запуска сеанса 1С:Предприятие
- 4Откройте нужный модуль и поставьте точку останова (F9)
- 5Выполните в приложении действие, вызывающее код
- 6Пройдите код по шагам и проверьте значения переменных
Как подключить отладчик к уже работающему сеансу
Если пользователь уже работает в базе и ошибка возникает именно в его сеансе, перезапускать приложение не обязательно. В конфигураторе откройте меню «Отладка — Подключение». Появится окно со списком доступных предметов отладки — сеансов, фоновых заданий и внешних соединений, запущенных на этом сервере или в этой файловой базе.
Найдите в списке нужный сеанс по имени пользователя, типу клиента и времени начала, отметьте его и нажмите «Подключить». Если сеанс запущен без разрешения отладки, его в списке не будет — тогда пользователю нужно перезапустить приложение с параметром, разрешающим отладку, либо администратор включает её на уровне сервера.
Обратите внимание на флажок «Искать предметы отладки на удалённых компьютерах» и настройку сервера отладки в окне подключения. В распределённой инфраструктуре с несколькими рабочими серверами сеанс может находиться не на том узле, к которому подключён конфигуратор, и его придётся искать через правильный адрес сервера отладки.
Включение отладки на сервере 1С
В клиент-серверном варианте серверный код отлаживается только если агент сервера 1С запущен в режиме отладки. Для этого службу агента сервера запускают с параметром -debug в строке запуска. На Windows параметр добавляется в реестре в параметрах службы «Агент сервера 1С:Предприятия», после чего службу перезапускают.
После перезапуска службы с ключом отладки серверные вызовы становятся видимыми отладчику. Учтите, что включённый режим отладки несколько снижает производительность сервера, поэтому на продуктивных системах его обычно включают временно — на период поиска проблемы, а затем выключают.
Для отладки через веб-сервер (тонкий клиент, веб-клиент, HTTP-сервисы) дополнительно проверьте публикацию базы: в настройках публикации должен быть разрешён режим отладки, иначе отладчик не сможет установить соединение с сервером отладки через веб-сервер.
Отладка фоновых заданий, веб-сервисов и внешних соединений
Фоновые задания выполняются в отдельных сеансах и не подключаются к отладчику автоматически. Чтобы их отладить, откройте «Отладка — Подключение» и дождитесь, пока фоновое задание появится в списке предметов отладки, либо временно замените фоновый вызов на синхронный в тестовой базе — так проще воспроизвести логику.
HTTP-сервисы и веб-сервисы отлаживаются через подключение к сеансу, который создаётся при обращении к сервису. В свойствах сервиса в конфигураторе можно включить автоматическое подключение отладчика: установите соответствующий флажок в палитре свойств объекта, и при следующем вызове сервиса выполнение остановится на точке останова в вашем конфигураторе.
Внешние соединения (COM, Automation) отлаживаются аналогично — через список предметов отладки. Главное условие остаётся тем же: соединение должно быть запущено с разрешением отладки, а сервер — в режиме отладки.
Как выбрать способ отладки
Точки останова и проверка работы отладчика
Точка останова ставится кликом по серой полосе слева от строки кода или клавишей F9. Красный кружок означает активную точку. Можно задать точку с условием — правый клик по ней, «Условие останова»: выполнение остановится, только когда выражение истинно. Это незаменимо внутри циклов, где останавливаться на каждой итерации неудобно.
Проверить, что отладчик реально работает, просто: поставьте точку останова в обработчике, который точно выполняется (например, «ПриОткрытии» формы), и выполните действие. Если выполнение остановилось и внизу конфигуратора появились панели стека вызовов и значений переменных — отладка функционирует. Если точка останова «проскакивается», значит, исполняется другой код, другой сеанс не подключён или отладка на сервере не включена.
Для просмотра значений используйте табло (Shift+F9): добавьте туда переменные и выражения, и их значения будут обновляться на каждом шаге. Для быстрой оценки одного выражения достаточно выделить его и нажать Shift+F9 или посмотреть всплывающую подсказку при наведении курсора.
Как проверить результат
Выполнение останавливается, строка подсвечена жёлтым
Точка игнорируется — сеанс не подключён или код не исполняется
Видны активные сеансы базы
Список пуст — отладка на сервере не включена
Переменные показывают актуальные значения
Ошибка вычисления — выражение недоступно в текущем контексте
Частые ошибки при открытии отладчика
Наиболее распространённая проблема — пустой список предметов отладки в клиент-серверной базе. Причина почти всегда в том, что агент сервера запущен без ключа -debug. Вторая по частоте — несовпадение версий платформы: конфигуратор одной версии не подключается к сеансу, запущенному под другой.
Ещё одна типичная ситуация — точка останова стоит в клиентском модуле, а код фактически исполняется на сервере, или наоборот. Проверяйте директивы компиляции (&НаКлиенте, &НаСервере) и убедитесь, что отладчик подключён к тому типу сеанса, где реально выполняется код.
Наконец, не забывайте, что остановленный на точке сеанс блокирует транзакции и может держать блокировки данных. Долгая отладка в продуктивной базе способна остановить работу других пользователей, поэтому сложные исследования лучше переносить в копию базы.
Что важно запомнить
Отладчик открывается из конфигуратора: F5 запускает новый сеанс с отладкой, «Отладка — Подключение» подключается к работающим сеансам. Для клиент-серверных баз заранее включите отладку на сервере, следите за совпадением версий платформы и не задерживайте остановленные сеансы в продуктивной базе.
Частые вопросы
Почему в списке подключения нет ни одного сеанса?
Чаще всего агент сервера 1С запущен без параметра -debug, либо конфигуратор подключён к другому кластеру серверов. Проверьте строку запуска службы агента и адрес сервера отладки в окне подключения.
Можно ли открыть отладчик без конфигуратора?
Нет, отладчик — часть конфигуратора. Но сеанс пользователя можно запустить с разрешением отладки через параметр командной строки, а подключиться к нему позже из конфигуратора на той же или другой машине.
Как отладить код, который выполняется только на сервере?
Включите режим отладки на агенте сервера, затем подключитесь к сеансу через «Отладка — Подключение» и поставьте точку останова в серверной процедуре. Без ключа -debug серверный код отладчику недоступен.
Почему точка останова не срабатывает, хотя код точно выполняется?
Проверьте, что отладчик подключён именно к тому сеансу, где исполняется код, что точка стоит в нужном контексте (клиент или сервер) и что конфигурация базы данных обновлена — иначе исполняется старая версия кода.
Опасно ли отлаживать продуктивную базу?
Сама по себе отладка данных не меняет, но остановленный сеанс может удерживать транзакционные блокировки и мешать другим пользователям. Для длительного анализа безопаснее использовать копию базы.
Как остановить отладку и отключиться от сеанса?
Нажмите Shift+F5 или выберите «Отладка — Завершить» — выполнение продолжится, а отладчик отключится. Также можно снять все точки останова и продолжить выполнение клавишей F5.