Первый запуск отладчика 1С 8.3: настройки, режимы, клавиши и подводные камни
Содержание
Начать отладку в конфигураторе 1С 8.3 просто: откройте модуль, поставьте курсор на нужную строку, нажмите F9 (точка останова), затем F5 — платформа запустит 1С:Предприятие с подключённым отладчиком. Повторите в программе действие, которое ведёт к нужному коду, и выполнение остановится на точке.
Правильно начать отладку — значит заранее проверить три вещи: какой клиент запускается, выполняется ли код на сервере и разрешена ли там отладка. Если одна из них не выполнена, начинаются типичные ошибки новичков: точка останова не срабатывает, отладчик «не видит» сервер, фоновое задание проходит мимо.
Зачем нужна отладка и чем она лучше «Сообщить()»
Отладчик позволяет остановить выполнение кода на любой строке и посмотреть, что лежит в переменных именно в этот момент. Без него разработчик вставляет Сообщить() в десять мест, перезапускает программу и гадает по выводу.
Что даёт отладка в конфигураторе:
- 🔍 значения переменных, реквизитов объекта, строк таблиц значений и результатов запросов в момент остановки;
- 🧭 стек вызовов — кто вызвал текущую процедуру и с какими параметрами;
- ⏭️ пошаговое выполнение: зайти внутрь процедуры, пройти её целиком, выйти наверх;
- 🧪 вычисление любого выражения «на лету», без правки кода;
- ⏱️ замер производительности — какие строки съедают время.
Отладка нужна не только программисту. Внедренец, который дорабатывает типовую конфигурацию через расширение, тоже быстрее найдёт причину ошибки, если остановится на строке с исключением и посмотрит данные.
Отлаживайте в копии базы, а не в рабочей. Пока код стоит на точке останова внутри транзакции (например, при проведении документа), блокировки не снимаются. Пользователи, которые работают с теми же данными, будут ждать или получат ошибку блокировки.
Подготовка: что проверить в конфигураторе до первого запуска
Сохранённая и обновлённая конфигурация
Отладчик работает с конфигурацией базы данных. Если вы поменяли модуль и не нажали F7 (обновить конфигурацию
базы данных), при запуске по F5 конфигуратор спросит, обновить ли её. Ответите «Нет» — в программе выполнится старый код, а точки останова в новых строках не сработают или встанут не туда.
Правило простое: перед F5 сохраняйте изменения и соглашайтесь на обновление. В файловой базе для обновления структуры нужен монопольный доступ — закройте другие сеансы.
Какой клиент запускает конфигуратор
Откройте Сервис → Параметры, вкладку Запуск 1С:Предприятия. Там выбирается основной клиент:
| Вариант | Когда выбирать |
|---|---|
| Автоматически | по умолчанию; для управляемого приложения обычно запустится тонкий клиент |
| Тонкий клиент | типовые конфигурации на управляемых формах (БП 3.0, ЗУП 3.1, УТ 11) |
| Толстый клиент | конфигурации на обычных формах, обработки для обычного приложения |
| Веб-клиент | проверка поведения в браузере; нужна публикация базы на веб-сервере |
Выбранный здесь клиент запускается по F5. Если ошибка воспроизводится только у пользователя в тонком клиенте, а вы отлаживаете в толстом, вы можете её просто не увидеть.
Права пользователя и учётная запись
Под каким пользователем откроется программа, зависит от параметров запуска. Если в базе есть пользователи с паролем, конфигуратор при F5 подставит текущего пользователя конфигуратора. Ошибку, которая возникает только у бухгалтера с ограниченными правами, ловите под его учётной записью: запустите клиент вручную под ним и подключите отладчик (об этом в разделе про способы запуска).
Способы запуска отладки в конфигураторе 1С
Способ 1. Клавиша F5 — самый частый
Отладка → Начать отладку или F5. Конфигуратор запускает 1С:Предприятие, сам становится отладчиком и показывает в строке состояния, что идёт отладка. Чтобы прекратить — Shift+F5 (завершает и сеанс клиента).
Этого хватает для большинства повседневных задач: проверить обработчик формы, проведение документа, печатную форму, расчёт в общем модуле.
Способ 2. Подключение к уже запущенному клиенту
Бывает, что ошибка возникает только у конкретного пользователя или после долгой работы программы. Перезапуск её «лечит». Тогда:
- Запустите клиент с разрешённой отладкой. Надёжный путь — ключ командной строки
/DEBUGв параметрах запуска базы (в окне запуска:Изменить → Дополнительные параметры запуска). - В конфигураторе откройте
Отладка → Подключение. - В списке предметов отладки выберите нужный сеанс и нажмите «Подключить».
После подключения точки останова работают так же, как при F5.
Способ 3. Запуск через командную строку
Удобно для ярлыка на рабочем столе тестировщика. Пример для HTTP-отладки, когда сервер отладки слушает порт по умолчанию 1550 на этом же компьютере:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\TestBase" /DEBUG -http -attach /DEBUGGERURL "http://localhost:1550"
Путь к базе и к исполняемому файлу подставьте свои. Если ключи не сработали в вашей версии платформы, используйте способ 2 — он не зависит от командной строки.
Какой способ выбрать
| Способ | Когда | Минус |
|---|---|---|
F5 из конфигуратора | обычная разработка и проверка | клиент открывается под текущим пользователем конфигуратора |
| Подключение к сеансу | ошибка у конкретного пользователя, редкая ситуация | клиент нужно заранее запустить с разрешённой отладкой |
| Командная строка | повторяемые тесты, ярлыки для тестировщиков | надо помнить ключи и адрес сервера отладки |
Отладка в разных режимах: файловая база, сервер, тонкий и толстый клиент
Файловая база
В файловом варианте и клиентский, и «серверный» код выполняются в процессе клиента. Ничего дополнительно включать не нужно: F5 — и отлаживаются все модули, включая процедуры с директивой &НаСервере.
Клиент-серверная база
Здесь код с &НаСервере и модули менеджеров выполняются в рабочем процессе сервера 1С. Чтобы отладчик туда попал, сервер должен быть запущен с разрешённой отладкой: агенту ragent добавляют ключ -debug, а для протокола HTTP — ещё -http.
На Windows ключи прописывают в строку запуска службы агента сервера 1С (параметр ImagePath службы в реестре в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services). Фрагмент строки выглядит так:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -debug -http -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Номер версии и пути возьмите из своей текущей строки — меняйте только ключи отладки, остальное не трогайте.
После правки службу агента нужно перезапустить. При перезапуске обрываются все сеансы пользователей на этом сервере. Делайте это вне рабочего времени и только на тестовом сервере. На рабочем сервере отладку держать включённой не стоит: она добавляет накладные расходы.
Если серверная отладка не включена, клиентский код отлаживается как обычно, а точки останова в серверных процедурах молча пропускаются. Это самая частая жалоба новичков.
Тонкий и толстый клиент
В тонком клиенте на клиенте выполняется только код с &НаКлиенте. Всё остальное — на сервере, и в клиент-серверной базе требует серверной отладки.
В толстом клиенте (обычное приложение) модули объектов и общие модули с флагом «Клиент (обычное приложение)» могут выполняться прямо на клиенте. Поэтому одна и та же процедура в толстом клиенте может остановиться на точке, а в тонком — нет. Отлаживайте в том клиенте, в котором работает пользователь.
Веб-клиент
Для веб-клиента база должна быть опубликована на веб-сервере, а сеанс подключается к отладчику через Отладка → Подключение. Отлаживается тот же клиентский код, но в браузере. Используйте этот режим, только если ошибка воспроизводится именно в браузере.
Горячие клавиши и приёмы, которые экономят время
Основные клавиши отладчика
| Действие | Клавиша |
|---|---|
| Начать отладку / продолжить выполнение | F5 |
| Завершить отладку | Shift+F5 |
| Поставить или снять точку останова | F9 |
| Шагнуть в (зайти внутрь процедуры) | F11 |
| Шагнуть через (выполнить строку целиком) | F10 |
| Шагнуть из (выйти из процедуры наверх) | Shift+F11 |
| Идти до курсора | Shift+F10 |
| Вычислить выражение | Shift+F9 |
| Список точек останова | Alt+F9 |
| Стек вызовов | Ctrl+Alt+C |
Точка останова с условием
Цикл по 5 000 строкам, а ошибка на одной? Не жмите F5 5 000 раз. Поставьте точку, откройте её свойства (через список точек останова или контекстное меню на точке) и задайте условие, например:
Строка.Номенклатура.Код = "00-00001234"
Выполнение остановится только на нужной строке.
Остановка по ошибке
Знаете только текст исключения, но не место? Включите Отладка → Остановка по ошибке. Отладчик остановится на той строке, где возникло исключение, даже если оно потом перехватывается в Попытка ... Исключение. В настройке можно указать фрагмент текста ошибки, чтобы не останавливаться на каждом перехваченном исключении.
Табло и вычисление выражения
- 📌 Табло — закрепите в нём переменные, которые хотите видеть на каждом шаге. Таблицы значений и результаты запросов раскрываются прямо там.
- 🧮 Вычислить выражение (
Shift+F9) — проверьте выражение без правки кода:ТаблицаТоваров.Итог("Сумма"),Запрос.Выполнить().Выгрузить().
💡 Подсказка: выделите переменную в модуле и нажмите Shift+F9 — она подставится в поле выражения автоматически.
Замер производительности
Код не падает, но работает минуту вместо секунды. Включите Отладка → Замер производительности, выполните действие в программе, выключите замер. Конфигуратор покажет, сколько раз выполнялась каждая строка и какую долю времени она заняла. Обычно виновник — запрос в цикле или обращение к реквизиту через точку внутри большого цикла.
Сложные сценарии: фоновые задания, расширения, интеграции
Фоновые и регламентные задания
Фоновое задание выполняется в отдельном сеансе, поэтому точка останова в его процедуре не сработает, если отладчик не подключён к этому сеансу. Решение — автоматическое подключение:
- Откройте
Отладка → Подключение. - Нажмите кнопку автоматического подключения.
- Отметьте тип предметов отладки «Фоновое задание».
- Запустите задание (из программы или дождитесь расписания регламентного) — отладчик подключится сам.
В клиент-серверной базе фоновые задания выполняются на сервере, значит, нужна включённая серверная отладка.
💡 Чтобы не ждать расписания, временно вызовите процедуру задания напрямую из обработки на сервере. Логика та же, а отлаживать проще.
Расширения конфигурации
Модули расширения отлаживаются так же, как основная конфигурация: откройте расширение в конфигураторе (Конфигурация → Расширения конфигурации), поставьте точку в его модуле, F5.
Подводные камни:
- 🔄 расширение должно быть применено к базе: после правки его тоже нужно обновить в базе данных, иначе выполнится старая версия;
- 🧩 если метод расширения помечен
&Вместои не вызываетПродолжитьВызов(), точка в исходной процедуре типовой конфигурации не сработает — её код просто не выполняется; - ✅ проверьте, что расширение активно и у него не стоит запрет на работу в безопасном режиме, если код обращается к файлам или внешним ресурсам.
HTTP-сервисы, веб-сервисы и внешние соединения
Вызов HTTP-сервиса или веб-сервиса приходит извне и выполняется в отдельном сеансе на стороне веб-сервера или сервера 1С. Ловить его вручную бессмысленно — используйте то же автоматическое подключение, отметив нужный тип: HTTP-сервис, веб-сервис или COM-соединение.
Порядок:
- Включите автоматическое подключение для нужного типа предметов отладки.
- Поставьте точку в модуле сервиса.
- Отправьте запрос из внешней системы или из Postman.
Если сервис опубликован на веб-сервере, в настройках публикации должна быть разрешена отладка — без этого сеанс к отладчику не подключится.
Пока внешний вызов стоит на точке останова, вызывающая система ждёт ответа и может отвалиться по таймауту. Это нормально для теста, но не делайте так на боевой интеграции.
Если отладка не запускается или точка не срабатывает
Симптомы, с которыми сталкиваются в первые дни работы с отладчиком, и что проверить в каждом случае.