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

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

Как отключить отладку в 1С

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

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

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

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

Как понять, что отладка включена

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

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

Остановки на точках прерыванияОтладка активна в конфигураторе

Меню «Отладка» → завершить сеанс отладки и снять точки

Медленная работа сервераВозможен ключ -debug в службе агента

Проверить строку запуска службы в реестре

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

Свойства рабочего сервера в консоли кластера

Параметр debuggerURL в браузереВключена отладка веб-клиента

Убрать параметр из адресной строки и настроек публикации

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

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

Если вы хотите продолжить работу предприятия, но без остановок, выберите «Отладка → Продолжить» (F5) — выполнение пойдёт дальше до следующей точки прерывания. Чтобы точки больше не срабатывали, снимите их все сразу: Ctrl+Shift+F9 или меню «Отладка → Снять все точки останова». Отдельную точку убирают кликом по красному маркеру слева от строки кода или клавишей F9 на нужной строке.

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

Порядок действий в конфигураторе
  1. 1
    Откройте меню «Отладка» и нажмите «Завершить» (Shift+F5) для остановки сеанса
  2. 2
    Снимите все точки останова сочетанием Ctrl+Shift+F9
  3. 3
    Запустите предприятие обычным способом (Сервис → 1С:Предприятие) и убедитесь, что остановок нет

Отключение отладки на сервере 1С:Предприятия

Если сервер 1С запущен в режиме отладки, его нужно перевести в обычный режим. Это делается правкой строки запуска службы агента сервера. Остановите службу «Агент сервера 1С:Предприятия» через консоль services.msc — при этом все пользователи будут отключены, поэтому работу выполняйте в нерабочее время или предупредите коллег.

Откройте редактор реестра и перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, найдите службу агента (имя вида «1C:Enterprise 8.3 Server Agent»). В параметре ImagePath находится строка запуска. Удалите из неё ключ -debug, а если отладка была по HTTP — также параметры -debugServerAddr, -debugServerPort и -debugServerPwd. Сохраните изменения и запустите службу заново.

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

text
HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent → ImagePath → удалить ключ -debug

Отключение отладки в файловой базе и толстом клиенте

В файловом варианте отладка включается только локально — при запуске из конфигуратора или при явном указании параметра в командной строке. Если предприятие запускается ярлыком с параметром /DEBUG, откройте свойства ярлыка и уберите этот ключ из поля «Объект». Аналогично проверьте пакетные файлы (.bat, .cmd), если база запускается скриптами.

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

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

В веб-клиенте отладка активируется параметром debuggerURL в адресной строке браузера или в настройках публикации на веб-сервере. Чтобы отключить её, уберите параметр из URL и обновите страницу. Если параметр прописан в файле публикации default.vrd на веб-сервере, отредактируйте файл и удалите соответствующий элемент, затем перезапустите веб-сервер (IIS или Apache).

Учтите, что отладка по HTTP требует, чтобы сервер 1С был запущен с соответствующими параметрами. Если вы отключили отладку на сервере по инструкции выше, отладка веб-клиента перестанет работать автоматически — дополнительные параметры в URL просто не дадут эффекта.

Проверка результата и типичные ошибки

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

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

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

Запуск предприятия из конфигуратора
Норма

Работа без остановок на точках прерывания

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

Сеанс останавливается на строках кода

Свойства сервера в консоли кластера
Норма

Режим отладки выключен

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

Указан протокол отладки TCP или HTTP

Строка запуска службы агента
Норма

Ключ -debug отсутствует

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

Ключ вернулся после перезапуска службы

Работа фоновых заданий
Норма

Задания выполняются без ошибок блокировок

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

Ошибки сохраняются — режим не снят

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

Типичные ошибки
01
Удалили ключ -debug, но не перезапустили службу — режим остался активным
02
Сняли режим в консоли кластера, но строка запуска службы вернула его после перезагрузки
03
Завершили сеанс отладки, но оставили точки останова — при следующем запуске остановки повторяются
04
Убрали параметр из URL веб-клиента, но не из файла default.vrd — отладка включается снова

Когда отладку отключать нельзя

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

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

Итог

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

В конфигураторе отладка снимается через «Отладка → Завершить» и Ctrl+Shift+F9. На сервере нужно убрать ключ -debug из строки запуска службы агента в реестре и перезапустить службу. В веб-клиенте — удалить параметр debuggerURL из URL и файла публикации. После каждого действия проверяйте результат: остановок нет, фоновые задания работают стабильно.

Частые вопросы

Влияет ли включённая отладка на производительность сервера 1С?

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

Почему точки останова срабатывают, хотя отладку не запускали?

Скорее всего, отладчик подключился автоматически: в настройках подключения включён автоматический захват клиентских приложений. Откройте «Отладка → Подключение» и снимите флажки автоматического подключения, затем снимите все точки останова через Ctrl+Shift+F9.

Нужно ли перезагружать весь сервер после правки реестра?

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

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

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

Отладка по HTTP и по TCP — в чём разница при отключении?

При отладке по TCP достаточно убрать ключ -debug. При отладке по HTTP дополнительно убирают параметры -debugServerAddr, -debugServerPort и -debugServerPwd из строки запуска службы, а также проверяют настройки публикации отладочного интерфейса на веб-сервере.

Что делать, если после отключения отладки ошибки фоновых заданий остались?

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