Вы поставили точку останова в 1С:Предприятие, запустили отладку, но выполнение кода проходит мимо, как будто её нет? Эта проблема знакома многим разработчикам — от новичков до опытных специалистов. Причин может быть десятки: от банальной невнимательности до скрытых настроек конфигуратора или особенностей платформы.

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

Предупреждение: если вы используете 1С:EDT (Eclipse Development Tools), часть решений будет отличаться — мы выделим эти моменты отдельно. Также учтите, что поведение точек останова может меняться в зависимости от версии платформы (например, в 8.3.20+ появились новые нюансы с отладкой HTTP-Сервисов).

1. Точка останова неактивна: проверяем базовые настройки

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

  • 🔴 Цвет точки останова: в конфигураторе активная точка выделяется красным, а неактивная (например, в сером коде) — серым. Если цвет бледный, кликните по ней дважды, чтобы активировать.
  • 📍 Позиция в коде: точки останова не работают в пустых строках, комментариях или внутри выражений (например, посреди формулы). Они должны стоять на исполняемых строках — перед операторами Если, Цикл, вызовами методов и т.д.
  • 🚫 Заблокированный модуль: если модуль заблокирован (значок 🔒 рядом с именем в дереве конфигурации), точки останова в нём игнорируются. Разблокируйте его через контекстное меню.

Также проверьте, что отладка вообще разрешена в настройках конфигуратора:

  1. Откройте Сервис → Параметры.
  2. Перейдите на вкладку Отладка.
  3. Убедитесь, что флажок Разрешить отладку установлен.

Цвет точки — красный (активна)|Точка стоит на исполняемой строке|Модуль не заблокирован|Отладка разрешена в параметрах конфигуратора-->

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

2. Режим запуска 1С: почему точки останова игнорируются

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

Режим запуска Поддерживает ли точки останова? Особенности отладки
Толстый клиент ✅ Да Полная поддержка отладки, включая фоновые задания и серверные вызовы.
Тонкий клиент ⚠️ Частично Точки останова срабатывают только на клиентской стороне. Серверный код отлаживается через Отладчик сервера 1С.
Веб-клиент ❌ Нет* Отладка возможна только через 1С:EDT или внешние инструменты (например, Chrome DevTools для JS-кода).
Фоновое задание ✅ Да** Требуется подключение отладчика к серверу 1С. Точки срабатывают только на серверном коде.

* В 1С:Предприятие 8.3.20+ появилась экспериментальная поддержка отладки веб-клиента через 1С:EDT.

** Для отладки фоновых заданий необходимо запустить Отладчик сервера 1С и подключиться к рабочему процессу.

Как проверить, в каком режиме вы работаете? В строке заголовка конфигуратора или клиентского приложения указан текущий режим (например, 1С:Предприятие 8.3 (8.3.21.1255) — Тонкий клиент). Если вы пытаетесь отладить серверный код через Тонкий клиент, точка останова не сработает — нужно либо переключиться на Толстый клиент, либо использовать Отладчик сервера.

Толстый клиент|Тонкий клиент|Веб-клиент|Фоновые задания-->

3. Проблемы с подключением отладчика к серверу 1С

Если вы работаете с Тонким клиентом или Веб-клиентом, для отладки серверного кода требуется подключение к отладчику сервера 1С. Этот процесс часто вызывает сложности, особенно у новичков. Вот типичные ошибки и их решения:

  • 🔌 Отладчик не подключён: перед запуском отладки серверного кода необходимо явно подключиться к рабочему процессу через Отладка → Подключить отладчик (в конфигураторе). Если этого не сделать, точки останова на сервере игнорируются.
  • 🚪 Порт заблокирован: по умолчанию отладчик сервера использует порт 1560. Убедитесь, что он не заблокирован фаерволом или антивирусом. В некоторых корпоративных сетях этот порт закрыт — потребуется согласование с администратором.
  • 🔄 Несовпадение версий: если версия платформы на клиенте и сервере различается, отладчик может не подключиться. Например, клиент 8.3.21, а сервер 8.3.19. Проверьте версии в Справка → О программе.

Чтобы проверить подключение отладчика:

  1. Запустите 1С:Предприятие в режиме конфигуратора.
  2. Выберите Отладка → Подключить отладчик.
  3. В открывшемся окне должен появиться список доступных рабочих процессов. Если список пуст — проблема с подключением.
💡

Если отладчик сервера не подключается, попробуйте вручную указать адрес сервера в формате tcp://имя_сервера:1560 в поле подключения.

Если подключение установлено, но точки останова всё равно не срабатывают, проверьте настройки серверного кластера:

  1. Откройте Администрирование кластера серверов.
  2. Перейдите на вкладку Отладка.
  3. Убедитесь, что флажок Разрешить отладку установлен для нужного рабочего процесса.

4. Особенности отладки в 1С:EDT (Eclipse)

Если вы используете 1С:EDT (среду разработки на базе Eclipse), алгоритм работы с точками останова отличается от классического конфигуратора. Здесь есть свои нюансы:

  • 🔧 Конфигурация проекта: перед отладкой убедитесь, что проект в 1С:EDT привязан к правильной информационной базе. Для этого откройте Свойства проекта → 1С:Enterprise → Информационные базы.
  • 🖥️ Режим запуска: в 1С:EDT по умолчанию может быть выбран Веб-клиент, где отладка ограничена. Переключитесь на Толстый клиент через меню запуска (значок ▶️ рядом с кнопкой Debug).
  • 🔄 Синхронизация кода: если вы изменили код в 1С:EDT, но не синхронизировали его с базой, точки останова могут не срабатывать. Используйте 1С:Enterprise → Синхронизировать с информационной базой.

В 1С:EDT также есть дополнительные инструменты отладки, которых нет в классическом конфигураторе:

  • Условные точки останова: можно настроить срабатывание только при выполнении определённого условия (например, Количество > 100).
  • Точки останова на исключения: автоматически останавливают выполнение при возникновении ошибки.
  • Логирование выражений: позволяет выводить значения переменных в консоль без остановки кода.

Чтобы поставить условную точку останова в 1С:EDT:

  1. Кликните правой кнопкой мыши на строке кода.
  2. Выберите Toggle Breakpoint → Conditional Breakpoint.
  3. Введите условие (например, Документ.Сумма > 10000).
Как отладить HTTP-Сервис в 1С

EDT?:

В 1С:EDT для отладки HTTP-Сервисов необходимо:

1. Запустить проект в режиме Debug.

2. В браузере открыть URL сервиса с параметром ?debug=1 (например, http://localhost/ws/Service1?debug=1).

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

5. Точки останова не работают в фоновых заданиях и регламентных операциях

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

  • 🕒 Время выполнения: фоновые задания могут выполняться по расписанию, когда вы не подключены к отладчику. Убедитесь, что задание запущено вручную (Все функции → Фоновые задания → Выполнить).
  • 🔗 Подключение к рабочему процессу: даже если вы подключили отладчик к серверу, фоновое задание может выполняться в другом рабочем процессе. Проверьте список процессов в Отладка → Подключить отладчик.
  • 📜 Права доступа: у пользователя, от имени которого выполняется задание, должны быть права на отладку. Проверьте роль Администрирование или Отладка в настройках пользователя.

Для отладки регламентных операций:

  1. Откройте Администрирование → Регламентные задания.
  2. Найдите нужное задание и нажмите Выполнить сейчас.
  3. Быстро подключите отладчик к серверу (у вас есть несколько секунд, пока задание не завершится).
💡

Фоновые задания и регламентные операции всегда выполняются на сервере. Для их отладки обязательно подключение к отладчику сервера 1С!

Если задание выполняется слишком быстро и вы не успеваете подключиться, добавьте в его код искусственную задержку (например, Подождать(10)) перед интересующим вас участком. Это даст время на подключение отладчика.

6. Конфликты с расширениями, внешними компонентами и антивирусами

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

  • 🧩 Расширения конфигурации: если код, который вы отлаживаете, переопределён в расширении, точка останова в основном модуле не сработает. Проверьте, нет ли переопределений через Конфигурация → Расширения.
  • 🛠️ Внешние компоненты: некоторые компоненты (например, 1C:Enterprise Development Tools или OneScript) могут конфликтовать с отладчиком. Отключите их временно через Сервис → Внешние компоненты.
  • 🛡️ Антивирусы и фаерволы: программы вроде Kaspersky, ESET NOD32 или встроенный Windows Defender могут блокировать отладочные порты (1560, 1561). Добавьте исключения для 1cv8.exe и ragent.exe.

Как проверить влияние расширений:

  1. Откройте Конфигурация → Расширения.
  2. Отключите все расширения (снимите флажки Использовать).
  3. Перезапустите 1С и проверьте, срабатывает ли точка останова.
  4. Если да — включайте расширения по одному, чтобы найти виновника.
💡

Чтобы временно отключить антивирус для теста, не удаляйте его — просто добавьте папку с 1С (например, C:\Program Files\1cv8) в исключения.

Если проблема в внешней компоненте, попробуйте обновить её до последней версии или свяжитесь с разработчиком. Например, для OneScript есть известный баг с отладкой в версиях ниже 1.7.0.

7. Ошибки платформы 1С: известные баги и обходные пути

К сожалению, в некоторых версиях 1С:Предприятие 8.3 есть баги платформы, из-за которых точки останова не срабатывают. Вот самые распространённые:

Версия платформы Проблема Обходной путь
8.3.18.x Точки останова не работают в HTTP-Сервисах при использовании Тонкого клиента. Переключитесь на Толстый клиент или используйте 1С:EDT.
8.3.19.1150 Отладчик сервера случайно отключается при длительном выполнении кода (>30 минут). Разбейте код на более мелкие части или добавьте периодический Сообщить("Отладка активна").
8.3.20.1549 Точки останова в Веб-клиенте срабатывают только после второго запуска отладки. Запустите отладку, дождитесь ошибки, затем повторите попытку.
8.3.21.x При отладке Фоновых заданий точки останова игнорируются, если в коде есть Попытка...Исключение. Замените Попытка на явную проверку ошибок или добавьте Сообщить перед блоком.

Если вы подозреваете, что проблема в баге платформы:

  1. Проверьте версию своей платформы в Справка → О программе.
  2. Найдите свою версию в таблице выше или поищите информацию на портале ИТС.
  3. Если баг подтверждён — обновите платформу или используйте обходной путь.
💡

Перед обновлением платформы сделайте резервную копию информационной базы! В некоторых версиях (например, 8.3.22) меняется формат хранения данных.

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

8. Альтернативные методы отладки, если точки останова не работают

Если вы перепробовали всё, но точки останова по-прежнему не срабатывают, не отчаивайтесь! В 1С:Предприятие есть несколько альтернативных способов отладки:

  • 📢 Сообщить(): классический метод вывода отладочной информации. Добавьте в код строки вида Сообщить("Значение переменной: " + Переменная).
  • 📝 Журнал регистрации: включите запись событий в журнал (Администрирование → Журнал регистрации) и анализируйте логи.
  • 🔍 Пошаговое выполнение: вместо точек останова используйте пошаговую отладку (F11 для входа в процедуру, F10 для выполнения строки).
  • 📊 Отладка через внешние инструменты: для Веб-клиента можно использовать Chrome DevTools (клавиша F12), а для серверных вызовов — Wireshark или Fiddler.

Пример использования Сообщить() для отладки:

Процедура РассчитатьСумму(Документ)

Сообщить("Начало расчета, сумма до: " + Документ.Сумма);

Документ.Сумма = Документ.Количество * Документ.Цена;

Сообщить("Сумма после: " + Документ.Сумма);

КонецПроцедуры

Для сложных сценариев (например, отладки HTTP-Сервисов или Обработок на стороне сервера) полезно комбинировать несколько методов. Например:

  1. Добавьте Сообщить() в ключевых местах кода.
  2. Включите запись в Журнал регистрации с уровнем детализации Отладка.
  3. Используйте F11 для пошагового выполнения критичных участков.
💡

Для вывода сложных структур (массивов, таблиц значений) в Сообщить() используйте функцию СтрокаСообщения() или ЗначениеВСтрокуВнутр().

Если вы работаете с 1С:EDT, там есть встроенный Log View (просмотр логов), который удобнее, чем Сообщить(). Чтобы вывести данные в лог, используйте:

Logger.DEBUG("Значение переменной: " + Переменная);

FAQ: Частые вопросы по отладке в 1С

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

Это может быть связано с:

  • Кэшированием кода — попробуйте очистить кэш (Сервис → Очистить кэш).
  • Особенностями Тонкого клиента — иногда требуется повторный запуск отладки.
  • Багом платформы (например, в 8.3.20.1549 точки срабатывают со второго раза).
Как отладить код, который выполняется в фоновом задании?

Для отладки фоновых заданий:

  1. Подключите отладчик к серверу (Отладка → Подключить отладчик).
  2. Запустите задание вручную (Все функции → Фоновые задания → Выполнить).
  3. Убедитесь, что точка останова стоит в серверном коде (не на клиенте!).

Если задание выполняется быстро, добавьте в начало кода Подождать(10), чтобы успеть подключиться.

Почему в 1С:EDT не видно точек останова?

В 1С:EDT точки останова могут не отображаться, если:

  • Проект не синхронизирован с информационной базой (используйте 1С:Enterprise → Синхронизировать).
  • Выбран неправильный режим запуска (например, Веб-клиент вместо Толстого клиента).
  • Версия 1С:EDT не совпадает с версией платформы.

Попробуйте обновить 1С:EDT до последней версии или пересоздать проект.

Можно ли отладить код на стороне клиента из Веб-клиента?

В стандартном Веб-клиенте отладка кода на клиентской стороне невозможна. Альтернативы:

  • Используйте 1С:EDT с экспериментальной поддержкой отладки веб-клиента (начиная с 8.3.20).
  • Для отладки JavaScript-кода используйте Chrome DevTools (F12).
  • Добавьте в код Сообщить() и смотрите результаты в журнале событий браузера.
Почему после обновления платформы перестали работать точки останова?

Это может быть связано с:

  • Изменением форматов хранения данных (например, при обновлении с 8.3.19 на 8.3.20).
  • Новыми настройками безопасности (проверьте Администрирование → Настройки безопасности).
  • Конфликтом с установленными расширениями или внешними компонентами.

Решение:

  1. Очистите кэш (Сервис → Очистить кэш).
  2. Перезапустите сервер 1С.
  3. Проверьте настройки отладки в новой версии платформы.