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

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

Как включить отладку в конфигураторе 1С

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

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

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

Что понадобится перед включением отладки

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

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

Базовый запуск отладки в файловой базе

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

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

Порядок действий для файловой базы
  1. 1
    Откройте базу в конфигураторе под пользователем с правами разработчика
  2. 2
    Убедитесь, что конфигурация базы данных обновлена (F7)
  3. 3
    Поставьте точку останова кликом слева от нужной строки кода или клавишей F9
  4. 4
    Нажмите F5 — конфигуратор запустит сеанс 1С:Предприятия
  5. 5
    Выполните в приложении действие, которое вызывает отлаживаемый код
  6. 6
    При срабатывании точки останова используйте F10 (шаг через) и F11 (шаг внутрь)

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

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

Режим отладки на сервере включается параметром -debug в строке запуска агента сервера 1С. На Windows это делается через реестр или свойства службы, на Linux — в скрипте запуска. После изменения параметра службу сервера нужно перезапустить. Для отладки по HTTP дополнительно используется ключ -debug -http.

bash
# Пример строки запуска агента сервера 1С с отладкой
"C:\Program Files\1cv8\8.3.22.1750\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -http

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

Точки останова и управление выполнением

Точка останова ставится кликом по серой полосе слева от строки кода или клавишей F9 — строка помечается красным маркером. Когда выполнение доходит до этой строки, приложение приостанавливается, и управление переходит в конфигуратор.

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

Точки останова можно делать условными: правый клик по маркеру → «Свойства» → задайте условие, например Контрагент.Наименование = "ООО Ромашка". Отладка остановится только когда условие истинно — это экономит время в циклах с сотнями итераций.

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

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

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

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

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

Типичные проблемы и их решение

Самая частая жалоба — «точка останова не срабатывает». Причины почти всегда одни и те же: конфигурация базы данных не обновлена после изменения кода, код выполняется на сервере, а сервер не в режиме отладки, либо вы отлаживаете не ту базу (проверьте строку подключения в заголовке конфигуратора).

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

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

Проверка результата и завершение отладки

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

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

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

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

Сплошной красный круг — точка активна и распознана

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

Пустой круг с вопросом — код не загружен, обновите конфигурацию БД

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

Приложение приостанавливается, строка подсвечена жёлтым в конфигураторе

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

Код выполняется без остановки — проверьте режим сервера и тип клиента

Подключённые сеансы
Норма

В окне «Подключение» виден ваш сеанс и серверные процессы

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

Список пуст или нет серверных процессов — сервер не в режиме отладки

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

Итог

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

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

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

Можно ли отлаживать код без конфигуратора?

Нет, полноценная отладка встроенного языка возможна только через конфигуратор. Как обходной вариант в рабочей базе используют логирование: вывод значений в журнал регистрации или файл через методы ЗаписьЖурналаРегистрации и Сообщить. Это менее удобно, но безопасно для продуктивной среды.

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

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

Как отладить обмен данными или веб-сервис?

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

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

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

Можно ли отлаживать код на веб-клиенте?

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