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

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

Режим отладки в 1С: как включить и пользоваться

Как включить режим отладки в 1С 8.3: настройка конфигуратора, сервера 1С, протоколов TCP и HTTP, точек останова. Решение типичных проблем с подключением.

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

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

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

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

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

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

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

Файловый вариант — самый простой случай. Откройте конфигуратор, перейдите в меню «Сервис» → «Параметры». На вкладке «Запуск 1С:Предприятия» или в разделе отладки (в зависимости от версии платформы расположение немного отличается) установите протокол отладки — по умолчанию используется TCP/IP. Здесь же можно увидеть диапазон портов, которые платформа будет использовать для соединения.

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

Включение отладки в файловой базе
  1. 1
    Откройте конфигуратор нужной базы
  2. 2
    Перейдите: Сервис → Параметры, проверьте протокол отладки TCP/IP
  3. 3
    Убедитесь, что клиентское приложение закрыто
  4. 4
    Нажмите Отладка → Начать отладку (F5)
  5. 5
    В открывшемся клиенте воспроизведите нужное действие — точка останова должна сработать

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

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

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

На Windows откройте редактор реестра (regedit), найдите ветку службы агента сервера — обычно это HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (имя может включать номер порта и версию). В параметре ImagePath добавьте к строке запуска ключ -debug, а для протокола HTTP — -debug -http. После изменения перезапустите службу агента сервера через оснастку services.msc.

На Linux ключ добавляется в параметры запуска службы srv1cv8 — в unit-файл systemd или скрипт запуска, после чего служба перезапускается. Учтите, что перезапуск службы разорвёт все активные сеансы пользователей, поэтому на рабочей базе это делают в нерабочее время или предупреждают пользователей.

После перезапуска службы откройте конфигуратор, подключитесь к серверной базе и запустите отладку (F5). Через «Отладка» → «Подключение» убедитесь, что в списке предметов отладки виден сервер (тип «Сервер»). Если сервера в списке нет, включите флажок автоматического подключения к нужным типам предметов в этом же окне.

Включение отладки через параметры запуска клиента

Иногда нужно отладить уже запущенный сеанс или конкретный сценарий без конфигуратора. Для этого клиентское приложение можно запустить с отладкой из командной строки или через параметр в свойствах базы в списке информационных баз. В окне запуска выделите базу, нажмите «Настройка» или используйте дополнительные параметры запуска.

Тонкий клиент запускается с параметрами: 1cv8c.exe /DEBUG /DEBUGTARGETCFG — в этом случае приложение при старте попытается подключиться к отладчику. Для отладки по HTTP указывается адрес отладчика дополнительными параметрами. Этот способ удобен, когда нужно отладить клиента на компьютере пользователя, где нет конфигуратора с исходной конфигурацией — отладчик может работать и на другой машине.

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

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

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

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

Для отладки кода, выполняемого через COM-соединение или внешнее подключение, в конфигураторе также предусмотрен тип предмета отладки «Внешнее соединение». Механика та же: автоматическое подключение плюс запуск внешнего приложения, инициирующего соединение.

Типичные проблемы: отладка включена, но точки останова не работают

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

Вторая группа причин — сетевые. При отладке по TCP/IP порты диапазона отладки должны быть доступны между машиной конфигуратора и клиентом или сервером. Файрволы и антивирусы часто блокируют эти порты. Если соединение по TCP/IP не устанавливается, попробуйте переключиться на протокол HTTP — трафик пойдёт через сервер 1С или веб-сервер по стандартным портам.

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

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

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

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

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

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

Список предметов отладки (Отладка → Подключение)
Норма

Клиент и сервер видны в списке

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

Список пуст или нет нужного типа предмета

Срабатывание точки останова
Норма

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

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

Точка игнорируется, код выполняется до конца

Строка запуска службы сервера (клиент-сервер)
Норма

В параметрах присутствует ключ -debug

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

Ключа нет или служба не перезапущена после правки

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

Итог

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

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

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

Можно ли включить отладку в уже запущенном сеансе 1С?

Нет, переключить работающий сеанс в отладочный режим нельзя. Клиент нужно закрыть и запустить заново — через F5 из конфигуратора или с параметром отладки в командной строке. Исключение — сеансы, которые стартуют после включения автоподключения (фоновые задания, вызовы сервисов): они подхватываются отладчиком автоматически.

Где в конфигураторе находится настройка протокола отладки?

Меню «Сервис» → «Параметры», далее раздел, посвящённый запуску и отладке (точное название вкладки зависит от версии платформы). Там выбирается протокол TCP/IP или HTTP и при необходимости указываются параметры подключения отладчика.

Почему сервер не появляется в списке предметов отладки?

Чаще всего служба агента сервера запущена без ключа -debug или не перезапускалась после его добавления. Также проверьте, что в окне подключения включён фильтр автоматического подключения для типа «Сервер», и что конфигуратор подключён именно к серверной базе, а не к файловой копии.

Влияет ли режим отладки на производительность сервера?

Да, работа сервера с ключом -debug добавляет накладные расходы, а активные остановки на точках приостанавливают выполнение кода сеанса. На рабочих системах отладку включают на ограниченное время и выключают сразу после диагностики.

Как отладить код на компьютере пользователя без конфигуратора?

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

Точка останова стоит, но код проходит мимо — что делать?

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