Разработка и Конфигурация · 11 мин
Режим отладки в 1С: как включить и пользоваться
Как включить режим отладки в 1С 8.3: настройка конфигуратора, сервера 1С, протоколов TCP и HTTP, точек останова. Решение типичных проблем с подключением.
Отладка — основной инструмент разработчика 1С, позволяющий пошагово выполнять код, смотреть значения переменных и находить причины ошибок. Без включённого режима отладки конфигуратор не сможет подключиться к исполняемому коду, и точки останова просто не сработают. При этом порядок включения зависит от режима работы информационной базы: файловый вариант настраивается за минуту, а клиент-серверный требует дополнительных действий на сервере.
Ниже разобраны все способы включения отладки: через конфигуратор, через параметры запуска, на сервере 1С:Предприятия и для веб-клиента. Отдельно рассмотрены типичные проблемы, когда отладка вроде бы включена, но предметы отладки не подключаются.
Что нужно проверить перед включением отладки
Перед настройкой определите, в каком режиме работает ваша информационная база: файловом или клиент-серверном. Посмотреть это можно в списке информационных баз в окне запуска 1С — в строке подключения файловой базы указан путь к каталогу, а серверной — имя сервера и кластера. От этого зависит, достаточно ли настроек конфигуратора или потребуется доступ к серверу.
Второе условие — права. У пользователя, под которым запускается отладка, должно быть право на конфигурирование или хотя бы доступ к конфигуратору, если база не защищена. Также убедитесь, что версия платформы конфигуратора совпадает с версией, под которой работает клиент: при разных версиях платформы подключение предметов отладки может завершаться ошибкой.
Третий момент — протокол отладки. Современные версии платформы поддерживают два протокола: TCP/IP и HTTP. TCP/IP подходит для локальной работы, HTTP удобен, когда отлаживаемое приложение и конфигуратор находятся в разных сетях или за файрволом, так как обмен идёт через сервер 1С или веб-сервер.
Как включить отладку в файловой базе через конфигуратор
Файловый вариант — самый простой случай. Откройте конфигуратор, перейдите в меню «Сервис» → «Параметры». На вкладке «Запуск 1С:Предприятия» или в разделе отладки (в зависимости от версии платформы расположение немного отличается) установите протокол отладки — по умолчанию используется TCP/IP. Здесь же можно увидеть диапазон портов, которые платформа будет использовать для соединения.
Далее нажмите «Отладка» → «Начать отладку» или клавишу F5. Платформа запустит клиентское приложение в режиме отладки, и оно автоматически подключится к конфигуратору как предмет отладки. Если клиент уже запущен без отладки, его придётся закрыть — переключить работающий сеанс в отладочный режим нельзя.
- 1Откройте конфигуратор нужной базы
- 2Перейдите: Сервис → Параметры, проверьте протокол отладки TCP/IP
- 3Убедитесь, что клиентское приложение закрыто
- 4Нажмите Отладка → Начать отладку (F5)
- 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С или веб-сервер по стандартным портам.
Третья причина — точка останова стоит в коде, который реально не выполняется: например, в серверном модуле, а вызов идёт через другой метод, или условие в коде не позволяет дойти до нужной строки. Поставьте точку на первую строку обработчика и убедитесь, что сам обработчик вызывается. Также проверьте, что отлаживаете ту же базу, в которой стоят точки останова, — при работе с копиями это распространённая ошибка.
Как проверить, что отладка настроена правильно
Итоговая проверка занимает минуту. Создайте или откройте любой общий модуль, поставьте точку останова на исполняемой строке и выполните действие, которое этот код вызывает. Остановка выполнения с подсветкой строки в конфигураторе — признак рабочей отладки. Дополнительно откройте «Отладка» → «Подключение» и убедитесь, что в списке присутствуют нужные типы предметов: клиент, сервер, фоновые задания.
Контрольные точки настройки
Клиент и сервер видны в списке
Список пуст или нет нужного типа предмета
Выполнение останавливается, строка подсвечена
Точка игнорируется, код выполняется до конца
В параметрах присутствует ключ -debug
Ключа нет или служба не перезапущена после правки
После завершения работ с отладкой на сервере верните конфигурацию службы в исходное состояние: уберите ключ -debug и перезапустите агента сервера. Это снимет дополнительную нагрузку и закроет техническую возможность подключения отладчика к рабочему контуру.
Что важно запомнить
В файловой базе достаточно нажать F5 в конфигураторе. В клиент-серверной — добавить ключ -debug в параметры службы агента сервера и перезапустить её. Фоновые задания и сервисы подключаются через автоподключение в окне «Отладка → Подключение». После работы отладочный режим на рабочем сервере отключают.
Частые вопросы
Можно ли включить отладку в уже запущенном сеансе 1С?
Нет, переключить работающий сеанс в отладочный режим нельзя. Клиент нужно закрыть и запустить заново — через F5 из конфигуратора или с параметром отладки в командной строке. Исключение — сеансы, которые стартуют после включения автоподключения (фоновые задания, вызовы сервисов): они подхватываются отладчиком автоматически.
Где в конфигураторе находится настройка протокола отладки?
Меню «Сервис» → «Параметры», далее раздел, посвящённый запуску и отладке (точное название вкладки зависит от версии платформы). Там выбирается протокол TCP/IP или HTTP и при необходимости указываются параметры подключения отладчика.
Почему сервер не появляется в списке предметов отладки?
Чаще всего служба агента сервера запущена без ключа -debug или не перезапускалась после его добавления. Также проверьте, что в окне подключения включён фильтр автоматического подключения для типа «Сервер», и что конфигуратор подключён именно к серверной базе, а не к файловой копии.
Влияет ли режим отладки на производительность сервера?
Да, работа сервера с ключом -debug добавляет накладные расходы, а активные остановки на точках приостанавливают выполнение кода сеанса. На рабочих системах отладку включают на ограниченное время и выключают сразу после диагностики.
Как отладить код на компьютере пользователя без конфигуратора?
Запустите тонкий клиент с параметрами отладки из командной строки и подключитесь к нему отладчиком со своего компьютера, указав параметры соединения. Потребуется сетевая доступность портов отладки между машинами либо использование протокола HTTP через сервер.
Точка останова стоит, но код проходит мимо — что делать?
Убедитесь, что этот участок кода вообще выполняется: поставьте точку на первую строку обработчика. Проверьте, что отлаживаете ту же базу и тот же сеанс, где воспроизводится действие. Если код серверный — убедитесь, что сервер работает в отладочном режиме и виден в списке предметов отладки.