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

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

Как открыть 1С в режиме отладки

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

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

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

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

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

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

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

Третий момент — соответствие версий. Конфигуратор и отлаживаемое приложение должны быть одной версии платформы. Если конфигуратор открыт из версии 8.3.22, а клиент запущен на 8.3.18, подключение может не установиться или работать нестабильно.

Запуск отладки из конфигуратора

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

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

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

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

Настройка параметров запуска отладки

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

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

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

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

Главное отличие клиент-серверной архитектуры: серверный код выполняется процессом rphost на сервере, и по умолчанию он недоступен отладчику. Чтобы включить отладку сервера, агент сервера 1С нужно запустить с параметром -debug.

На Windows это делается через реестр: в ветке службы агента сервера (HKLM\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent) в параметре ImagePath добавьте -debug к строке запуска, затем перезапустите службу. На Linux параметр добавляется в скрипт запуска агента.

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

bash
# Linux: запуск агента сервера с отладкой
/opt/1cv8/x86_64/current/ragent -debug -port 1540 -regport 1541 -range 1560:1591 -d /var/lib/1cv8

Подключение к уже работающему сеансу

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

Чтобы сеанс пользователя появился в списке, у него должен быть включён флажок «Разрешить отладку» — в тонком клиенте это настраивается через меню «Сервис» → «Параметры» → «Системные», либо клиент запускается с ключом командной строки /debug.

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

Работа с точками останова и проверка результата

Точка останова устанавливается кликом по левому полю редактора модуля напротив нужной строки или клавишей F9. Красный кружок означает активную точку, кружок с галочкой — точку с условием, которое задаётся через контекстное меню «Условие останова».

Когда выполнение доходит до точки, конфигуратор активируется, и управление переходит к клавишам пошагового выполнения: F11 — шаг с заходом в процедуры, F10 — шаг без захода, Shift+F11 — выйти из текущей процедуры. Значения переменных смотрите через «Вычислить выражение» (Shift+F9) или табло (Ctrl+Alt+W).

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

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

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

Подключение отладчика
Норма

В окне «Предметы отладки» виден сеанс, точки останова активны (красные)

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

Точки серые или с восклицательным знаком — отладчик не подключён

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

Выполнение прерывается, доступны шаги F10/F11

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

Код выполняется мимо точки — вероятно, отлаживается не тот процесс

Серверный код
Норма

Серверные вызовы видны в списке предметов отладки

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

Список пуст — агент сервера запущен без ключа -debug

Типичные ошибки и ограничения

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

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

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

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

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

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

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

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

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

Почему точка останова отображается серым и не срабатывает?

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

Как отладить фоновое задание?

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

Нужен ли толстый клиент для отладки?

Для большинства задач достаточно тонкого клиента. Толстый клиент нужен для отладки кода, который работает только в нём (например, обычные формы), и для использования обработки «Консоль кода» с пошаговым выполнением. Для отладки управляемых форм и серверного кода тип клиента значения не имеет.

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

Проверьте три вещи: у пользователя в настройках клиента включён флажок «Разрешить отладку» (или клиент запущен с ключом /debug), у вашей учётной записи есть право «Отладка», и между компьютерами не блокируются порты платформы. После изменения настроек сеанс пользователя нужно перезапустить.

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

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