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

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

Как запустить 1С в режиме отладки

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

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

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

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

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

Второе условие — конфигурация должна быть обновлена до актуальной версии базы данных. Если вы изменили модули, но не выполнили обновление конфигурации базы данных (F7), отладчик будет работать со старым кодом, и точки останова могут «съезжать» или не срабатывать.

Третий момент — определите, где исполняется интересующий код. В управляемых формах серверные процедуры (с директивой &НаСервере) выполняются на сервере 1С, и для их отладки в клиент-серверном варианте нужна отдельная настройка. Клиентский код (&НаКлиенте) отлаживается без дополнительных действий.

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

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

Если нужно запустить отладку без открытия клиентского приложения (например, чтобы подключиться к уже работающему сеансу позже), используйте «Отладка → Начало отладки» с предварительной настройкой предметов отладки. Тип клиентского приложения для запуска выбирается в диалоге «Сервис → Параметры» на закладке «Запуск 1С:Предприятия»: там же задаётся пользователь, под которым стартует сеанс, и параметры запуска.

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

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

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

Какие предметы доступны, определяется настройкой «Отладка → Настройка». Там задаётся режим поиска предметов отладки: локальный (только текущий компьютер) или по имени сервера. Для клиент-серверной базы укажите имя сервера 1С — иначе серверные предметы отладки в списке не появятся.

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

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

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

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

Видны строки «Сервер», «Тонкий клиент» и фоновые задания

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

Список пуст или виден только локальный клиент — проверьте имя сервера и протокол отладки

Индикация в конфигураторе после подключения
Норма

В заголовке или строке состояния отображаются подключённые предметы отладки

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

Точки останова отображаются как неактивные (пустые кружки) — сеанс не подключён

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

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

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

Код выполняется без остановки — проверьте, что код реально вызывается и конфигурация обновлена

Отладка на сервере 1С

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

На Windows служба называется «Агент сервера 1С:Предприятия». Параметр добавляется в реестре по пути службы (значение ImagePath) или через временную остановку и ручной запуск ragent.exe с нужными ключами. На Linux ключ добавляется в скрипт запуска или unit-файл systemd.

bash
ragent.exe -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug

Для отладки по HTTP (используется в новых версиях платформы) дополнительно потребуется, чтобы отладочные запросы проходили через веб-сервер или встроенный механизм платформы. Если сервер и конфигуратор находятся в разных сегментах сети, убедитесь, что отладочные порты не закрыты файрволом.

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

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

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

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

Типичные ошибки при запуске отладки

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

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

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

Альтернативы полноценной отладке

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

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

Маршрут решения

Как выбрать действие

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

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

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

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

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

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

Как отладить код, который выполняется только под конкретным пользователем?

Запустите отладку из конфигуратора, указав этого пользователя в настройках запуска («Сервис → Параметры → Запуск 1С:Предприятия»), либо попросите пользователя запустить сеанс с параметром /debug и подключитесь к его сеансу.

Влияет ли режим отладки на работу других пользователей?

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

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

Проверьте по порядку: запущен ли агент сервера с ключом -debug, указано ли имя сервера в настройках отладки конфигуратора, совпадает ли протокол отладки (HTTP/TCP) и не блокирует ли файрвол отладочные порты. Также убедитесь, что версии платформы конфигуратора и сервера совпадают.

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

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

Итог

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

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