Разработка и Конфигурация · 10 мин
Как запустить 1С в режиме отладки
Как запустить 1С в режиме отладки: настройка конфигуратора, точки останова, отладка на сервере и тонком клиенте, типичные ошибки и способы их устранения.
Режим отладки в 1С позволяет пошагово выполнять код, просматривать значения переменных и находить ошибки в конфигурации без догадок и вставки сообщений в текст модулей. Запустить отладку можно несколькими способами: из конфигуратора, через параметры командной строки или подключившись к уже работающему сеансу. Выбор способа зависит от режима работы базы — файловой или клиент-серверной — и от того, где исполняется код: на клиенте или на сервере.
Чаще всего проблемы возникают не с самим запуском, а с тем, что отладчик «не видит» предмет отладки: сеанс работает на сервере, отладка на сервере не включена, или код выполняется в фоновом задании. Ниже разобраны все основные сценарии с конкретными действиями и проверками результата.
Что нужно проверить перед запуском отладки
Перед началом убедитесь, что у вас есть права на конфигуратор и на отладку. В пользовательских базах право «Режим отладки» может быть отключено администратором — тогда конфигуратор запустится, но предметы отладки будут недоступны. Проверить это можно в свойствах пользователя: «Администрирование → Пользователи → Прочие права».
Второе условие — конфигурация должна быть обновлена до актуальной версии базы данных. Если вы изменили модули, но не выполнили обновление конфигурации базы данных (F7), отладчик будет работать со старым кодом, и точки останова могут «съезжать» или не срабатывать.
Третий момент — определите, где исполняется интересующий код. В управляемых формах серверные процедуры (с директивой &НаСервере) выполняются на сервере 1С, и для их отладки в клиент-серверном варианте нужна отдельная настройка. Клиентский код (&НаКлиенте) отлаживается без дополнительных действий.
Запуск отладки из конфигуратора
Стандартный способ — запуск сеанса 1С:Предприятие прямо из конфигуратора. Откройте нужную базу в конфигураторе и нажмите клавишу F5 или выберите в меню «Отладка → Начать отладку». Платформа запустит тонкий клиент в отладочном режиме, и конфигуратор автоматически подключится к этому сеансу.
Если нужно запустить отладку без открытия клиентского приложения (например, чтобы подключиться к уже работающему сеансу позже), используйте «Отладка → Начало отладки» с предварительной настройкой предметов отладки. Тип клиентского приложения для запуска выбирается в диалоге «Сервис → Параметры» на закладке «Запуск 1С:Предприятия»: там же задаётся пользователь, под которым стартует сеанс, и параметры запуска.
- 1Откройте базу в конфигураторе и убедитесь, что конфигурация базы данных обновлена (F7)
- 2Расставьте точки останова кликом по полю слева от строки кода или клавишей F9
- 3Нажмите F5 — запустится клиент в режиме отладки
- 4Выполните в клиенте действие, которое вызывает нужный код
- 5Когда выполнение остановится на точке, используйте F10 (шаг через), F11 (шаг в) и Shift+F11 (шаг из)
- 6Проверьте значения переменных через табло (Shift+F9) или окно «Вычислить выражение»
Настройка предметов отладки и подключение к сеансу
Если сеанс 1С:Предприятия уже запущен (например, пользователь воспроизвёл ошибку и не закрывает программу), подключитесь к нему через «Отладка → Подключение». В открывшемся окне отобразятся доступные предметы отладки: тонкий клиент, толстый клиент, сервер, фоновые задания, веб-сервисы. Отметьте нужные галочками и нажмите «Подключить».
Какие предметы доступны, определяется настройкой «Отладка → Настройка». Там задаётся режим поиска предметов отладки: локальный (только текущий компьютер) или по имени сервера. Для клиент-серверной базы укажите имя сервера 1С — иначе серверные предметы отладки в списке не появятся.
Обратите внимание на флажок «Искать предметы отладки на удалённом компьютере» и настройку протокола: в современных версиях платформы по умолчанию используется отладка по HTTP, в старых — по TCP. Протокол на сервере и в конфигураторе должен совпадать, иначе подключение не состоится.
Как проверить результат
Видны строки «Сервер», «Тонкий клиент» и фоновые задания
Список пуст или виден только локальный клиент — проверьте имя сервера и протокол отладки
В заголовке или строке состояния отображаются подключённые предметы отладки
Точки останова отображаются как неактивные (пустые кружки) — сеанс не подключён
Выполнение останавливается, строка подсвечивается жёлтым
Код выполняется без остановки — проверьте, что код реально вызывается и конфигурация обновлена
Отладка на сервере 1С
В клиент-серверном режиме сервер 1С по умолчанию запускается без поддержки отладки — это сделано для производительности. Чтобы включить отладку, агент сервера нужно запустить с ключом -debug. Для этого остановите службу агента сервера 1С, откройте параметры запуска службы и добавьте ключ в строку запуска, затем снова запустите службу.
На Windows служба называется «Агент сервера 1С:Предприятия». Параметр добавляется в реестре по пути службы (значение ImagePath) или через временную остановку и ручной запуск ragent.exe с нужными ключами. На Linux ключ добавляется в скрипт запуска или unit-файл systemd.
ragent.exe -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debugДля отладки по HTTP (используется в новых версиях платформы) дополнительно потребуется, чтобы отладочные запросы проходили через веб-сервер или встроенный механизм платформы. Если сервер и конфигуратор находятся в разных сегментах сети, убедитесь, что отладочные порты не закрыты файрволом.
Отладка фоновых заданий и внешних соединений
Фоновые задания выполняются в отдельных сеансах, поэтому точка останова в коде, который запускается фоново, не сработает в клиентском сеансе. Откройте «Отладка → Подключение», дождитесь появления фонового задания в списке предметов отладки и подключитесь к нему. Чтобы не пропустить короткое задание, заранее поставьте точку останова в самом начале вызываемой процедуры.
Аналогично отлаживаются HTTP-сервисы, веб-сервисы и внешние соединения: они появляются в списке предметов отладки в момент обращения. Для отладки веб-сервисов база должна быть опубликована на веб-сервере, а в конфигураторе включён соответствующий тип предметов отладки в настройках.
Если фоновое задание выполняется за доли секунды и вы не успеваете подключиться, временно добавьте в начало его кода цикл ожидания или длительную паузу — за это время задание появится в списке предметов отладки, и вы успеете подключиться.
Типичные ошибки при запуске отладки
Самая частая жалоба — «точка останова не срабатывает». Причины почти всегда одни и те же: конфигурация базы данных не обновлена после изменения кода, код исполняется на сервере без включённой серверной отладки, либо процедура вообще не вызывается в выбранном сценарии. Проверяйте эти три пункта в первую очередь.
Вторая группа проблем — несовпадение версий платформы конфигуратора и сервера. Если конфигуратор одной версии, а сервер другой, подключение может не устанавливаться без явных сообщений. Сверьте версии и при необходимости обновите клиентскую часть.
Альтернативы полноценной отладке
Не всегда есть возможность запустить отладчик: например, нет прав на конфигуратор или проблема воспроизводится только у конкретного пользователя на его компьютере. В таких случаях помогают обходные приёмы, хотя они менее удобны.
Первый приём — вывод диагностических сообщений через Сообщить() или запись в журнал регистрации с помощью ЗаписьЖурналаРегистрации(). Второй — технологический журнал: платформа может писать детальный лог событий, включая тексты запросов и ошибки, что особенно полезно для диагностики проблем на сервере без остановки работы пользователей.
Как выбрать действие
Частые вопросы
Можно ли запустить отладку без конфигуратора?
Нет, сам отладчик встроен в конфигуратор. Но сеанс 1С:Предприятия можно запустить с параметром командной строки /debug, чтобы он был доступен для подключения, а конфигуратор открыть позже и подключиться через «Отладка → Подключение».
Почему точка останова отображается пустым кружком?
Пустой кружок означает, что точка установлена в коде, который не загружен ни в один подключённый предмет отладки. Обычно это серверный код при неподключённом сервере или устаревшая версия модуля — обновите конфигурацию базы данных и проверьте подключение.
Как отладить код, который выполняется только под конкретным пользователем?
Запустите отладку из конфигуратора, указав этого пользователя в настройках запуска («Сервис → Параметры → Запуск 1С:Предприятия»), либо попросите пользователя запустить сеанс с параметром /debug и подключитесь к его сеансу.
Влияет ли режим отладки на работу других пользователей?
В файловой базе — практически нет. На сервере сам ключ -debug снижает производительность для всех сеансов, а остановка выполнения на точке останова в серверном коде может блокировать общие ресурсы (например, транзакции с блокировками). Поэтому серверную отладку включают на время диагностики и затем отключают.
Что делать, если конфигуратор не видит сервер в списке предметов отладки?
Проверьте по порядку: запущен ли агент сервера с ключом -debug, указано ли имя сервера в настройках отладки конфигуратора, совпадает ли протокол отладки (HTTP/TCP) и не блокирует ли файрвол отладочные порты. Также убедитесь, что версии платформы конфигуратора и сервера совпадают.
Можно ли изменить код прямо во время отладки?
Да, конфигуратор позволяет редактировать модуль во время остановки, но изменения применятся только после обновления конфигурации базы данных и перезапуска отладки. Текущее выполнение продолжится по старому коду.
Что важно запомнить
Базовый запуск отладки — клавиша F5 в конфигураторе после обновления конфигурации базы данных. Для клиент-серверной базы включите отладку на сервере ключом -debug и подключайтесь к предметам отладки через меню «Отладка → Подключение». После диагностики отключите отладку на сервере, а эксперименты с записью данных проводите на копии базы.