Разработка и Конфигурация · 10 мин
Как отключить отладку в 1С
Как отключить отладку в 1С: настройки конфигуратора, параметры запуска, отладка на сервере и веб-клиенте. Проверка результата, типичные ошибки и ответы на вопросы.
Отладка в 1С — полезный инструмент разработчика, но оставленная включённой она замедляет работу системы, мешает пользователям и может стать причиной ошибок при обмене данными и выполнении регламентных заданий. Отключать её нужно по-разному в зависимости от того, где именно она активна: в конфигураторе, в файловой базе, на сервере 1С:Предприятия или в веб-клиенте.
Чаще всего вопрос возникает в двух ситуациях. Первая — разработчик закончил поиск ошибки и хочет вернуть обычный запуск без остановок на точках прерывания. Вторая — администратор обнаружил, что сервер 1С запущен с включённой отладкой (ключ -debug), из-за чего падает производительность и фоновые задания ведут себя нестабильно.
Ниже разобраны все основные сценарии: от простого отключения отладчика в конфигураторе до правки параметров службы сервера. Для каждого случая указаны признаки, по которым можно убедиться, что отладка действительно выключена.
Как понять, что отладка включена
Прежде чем что-то отключать, убедитесь, что проблема действительно в режиме отладки. В конфигураторе это заметно сразу: активны пункты меню «Отладка», в заголовке окна предприятия ничего не меняется, но при выполнении кода система останавливается на точках прерывания, а в панели отладки видны текущие значения переменных.
На сервере 1С признаки менее очевидны. Типичные симптомы: общее снижение производительности при том же оборудовании, ошибки «Ошибка блокировки объекта» при работе фоновых заданий, проблемы с планами обмена и COM-соединениями. Проверить режим запуска можно в консоли кластера серверов — в свойствах рабочего сервера видно, включён ли режим отладки, и какой протокол используется (TCP или HTTP).
Меню «Отладка» → завершить сеанс отладки и снять точки
Проверить строку запуска службы в реестре
Свойства рабочего сервера в консоли кластера
Убрать параметр из адресной строки и настроек публикации
Отключение отладки в конфигураторе
Самый простой сценарий — отладчик запущен из конфигуратора. Откройте меню «Отладка» и выберите пункт «Завершить» (или нажмите Shift+F5). Сеанс предприятия, запущенный под отладкой, закроется, а конфигуратор вернётся в обычный режим редактирования.
Если вы хотите продолжить работу предприятия, но без остановок, выберите «Отладка → Продолжить» (F5) — выполнение пойдёт дальше до следующей точки прерывания. Чтобы точки больше не срабатывали, снимите их все сразу: Ctrl+Shift+F9 или меню «Отладка → Снять все точки останова». Отдельную точку убирают кликом по красному маркеру слева от строки кода или клавишей F9 на нужной строке.
Обратите внимание: если отладка была запущена с автоматическим подключением, при следующем старте предприятия из конфигуратора отладчик подключится снова. Это нормально — отладка активна только в рамках сеанса и не влияет на других пользователей базы.
- 1Откройте меню «Отладка» и нажмите «Завершить» (Shift+F5) для остановки сеанса
- 2Снимите все точки останова сочетанием Ctrl+Shift+F9
- 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. Сохраните изменения и запустите службу заново.
Альтернативный способ — через консоль кластера: в свойствах рабочего сервера снимите флажок режима отладки. Однако при перезапуске службы параметр из строки запуска может вернуть режим обратно, поэтому надёжнее править именно реестр.
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 прописан не только в реестре, но и в скрипте автозапуска или планировщике задач, который перезаписывает параметры службы. Проверьте все места, откуда служба может конфигурироваться.
Когда отладку отключать нельзя
Если вы ведёте разработку или ищете ошибку в рабочей базе, полное отключение отладки лишит вас инструмента диагностики. В этом случае вместо отключения ограничьте воздействие: снимите лишние точки останова, отключите автоподключение к чужим сеансам и используйте условные точки прерывания, которые срабатывают только при выполнении заданного условия.
На продуктивном сервере отладку по возможности не включают вовсе — для диагностики используют технологический журнал и копию базы. Это безопаснее и не влияет на пользователей.
Что важно запомнить
В конфигураторе отладка снимается через «Отладка → Завершить» и Ctrl+Shift+F9. На сервере нужно убрать ключ -debug из строки запуска службы агента в реестре и перезапустить службу. В веб-клиенте — удалить параметр debuggerURL из URL и файла публикации. После каждого действия проверяйте результат: остановок нет, фоновые задания работают стабильно.
Частые вопросы
Влияет ли включённая отладка на производительность сервера 1С?
Да. Сервер, запущенный с ключом -debug, работает медленнее, потому что поддерживает протокол взаимодействия с отладчиком. На базах с большим числом пользователей замедление ощутимо, поэтому на продуктивных серверах режим отладки держать постоянно не рекомендуется.
Почему точки останова срабатывают, хотя отладку не запускали?
Скорее всего, отладчик подключился автоматически: в настройках подключения включён автоматический захват клиентских приложений. Откройте «Отладка → Подключение» и снимите флажки автоматического подключения, затем снимите все точки останова через Ctrl+Shift+F9.
Нужно ли перезагружать весь сервер после правки реестра?
Нет, достаточно перезапустить только службу агента сервера 1С:Предприятия. Перезагрузка операционной системы не требуется. Помните, что перезапуск службы разорвёт все активные сеансы пользователей.
Можно ли отключить отладку только для конкретной базы в кластере?
Ключ -debug задаётся на уровне службы агента сервера, то есть для всего кластера сразу. Точечно отключить отладку для одной базы нельзя — можно лишь не подключаться отладчиком к сеансам этой базы, ограничив автоподключение в настройках конфигуратора.
Отладка по HTTP и по TCP — в чём разница при отключении?
При отладке по TCP достаточно убрать ключ -debug. При отладке по HTTP дополнительно убирают параметры -debugServerAddr, -debugServerPort и -debugServerPwd из строки запуска службы, а также проверяют настройки публикации отладочного интерфейса на веб-сервере.
Что делать, если после отключения отладки ошибки фоновых заданий остались?
Значит, причина не в режиме отладки. Проверьте журнал регистрации на момент выполнения задания, убедитесь, что у пользователя, от имени которого работает задание, достаточно прав, и проанализируйте технологический журнал на предмет взаимоблокировок.