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

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

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

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

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

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

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

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

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

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

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

Команда «Начать отладку» неактивнаНет права «Отладка» у пользователя

Проверьте роли пользователя в конфигураторе: Администрирование → Пользователи

Точка останова не срабатывает на сервереСервер запущен без режима отладки

Проверьте параметр -debug в службе агента сервера 1С

Код выполняется в фоновом заданииОбычная точка останова не остановит фоновый процесс

Используйте подключение к предмету отладки через меню Отладка → Подключение

Как включить отладку в конфигураторе

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

Перед запуском можно выбрать, какой клиент будет использоваться: толстый, тонкий или веб-клиент. Для этого откройте «Сервис» → «Параметры» → «Запуск 1С:Предприятия» и укажите нужный тип клиента. Это важно, потому что поведение кода может различаться в зависимости от клиента, а отлаживать нужно именно тот режим, в котором возникает ошибка.

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

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

Точки останова и управление выполнением

Точка останова — это метка на строке кода, при достижении которой выполнение приостанавливается и управление передаётся в конфигуратор. Установить точку можно кликом мыши в левой части строки модуля или клавишей F9. Повторное нажатие снимает точку.

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

Для анализа значений используйте табло (команда «Вычислить выражение», Shift+F9): в нём можно ввести любую переменную или выражение и увидеть текущее значение. Также доступны стек вызовов (показывает цепочку вызванных процедур) и окно «Локальные переменные».

Отладка серверного кода в клиент-серверном режиме

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

Остановите службу агента сервера, откройте параметры запуска (в Windows — через реестр или свойства службы, в Linux — через скрипт запуска) и добавьте -debug в командную строку. После перезапуска службы отладка серверных процедур станет доступной. Учтите, что режим отладки заметно снижает производительность сервера.

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

Отладка в тонком и веб-клиенте

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

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

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

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

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

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

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

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

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

Частые ошибки при включении отладки

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

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

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

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

Простая проверка: установите точку останова в очевидно исполняемом месте — например, в обработчике нажатия кнопки формы. Запустите отладку, нажмите кнопку в клиенте. Если конфигуратор активировался и подсветил строку с точкой, отладка работает корректно.

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

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

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

Остановка на точке в клиентском коде
Норма

Конфигуратор активируется, строка подсвечена, переменные видны в табло

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

Действие выполняется без остановки — проверьте, обновлена ли конфигурация базы

Остановка на точке в серверном коде
Норма

Выполнение прерывается, стек вызовов показывает серверный контекст

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

Точка игнорируется — сервер запущен без -debug или отладка запрещена в свойствах базы

Подключение к фоновому заданию
Норма

Задание видно в окне «Отладка → Подключение» и останавливается на точках

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

Задания нет в списке — не включено автоматическое подключение или отладка запрещена

Итог

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

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

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

Почему кнопка «Начать отладку» неактивна в конфигураторе?

Чаще всего у пользователя нет права «Отладка». Проверьте роли пользователя в разделе «Администрирование → Пользователи» или запустите конфигуратор под пользователем с полными правами. Также команда недоступна, если конфигурация находится на поддержке с запретом изменений в некоторых режимах запуска.

Можно ли отлаживать код без конфигуратора?

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

Отладка влияет на данные в базе?

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

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

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

Почему точки останова «съехали» и останавливаются не на тех строках?

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

Нужно ли отключать режим отладки на сервере после работы?

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