Вы поставили точку останова в 1С:Предприятие, запустили отладку, но выполнение кода проходит мимо, как будто её нет? Эта проблема знакома многим разработчикам — от новичков до опытных специалистов. Причин может быть десятки: от банальной невнимательности до скрытых настроек конфигуратора или особенностей платформы.
В этой статье мы не просто перечислим возможные причины, а разберём их с практическими примерами и скриншотами (где это критично для понимания). Вы узнаете, как проверить каждую версию, какие настройки влияют на отладку, и что делать, если точка останова игнорируется в конкретных сценариях — при работе с Тонким клиентом, Веб-клиентом или в фоновых заданиях. Особое внимание уделим «неочевидным» багам платформы 1С 8.3, о которых не пишут в официальной документации.
Предупреждение: если вы используете 1С:EDT (Eclipse Development Tools), часть решений будет отличаться — мы выделим эти моменты отдельно. Также учтите, что поведение точек останова может меняться в зависимости от версии платформы (например, в 8.3.20+ появились новые нюансы с отладкой HTTP-Сервисов).
1. Точка останова неактивна: проверяем базовые настройки
Начните с самого простого — убедитесь, что точка останова включена и находится в правильном месте. В 1С:Предприятие есть несколько «подводных камней», из-за которых отладчик может проигнорировать вашу метку:
- 🔴 Цвет точки останова: в конфигураторе активная точка выделяется красным, а неактивная (например, в сером коде) — серым. Если цвет бледный, кликните по ней дважды, чтобы активировать.
- 📍 Позиция в коде: точки останова не работают в пустых строках, комментариях или внутри выражений (например, посреди формулы). Они должны стоять на исполняемых строках — перед операторами
Если,Цикл, вызовами методов и т.д. - 🚫 Заблокированный модуль: если модуль заблокирован (значок 🔒 рядом с именем в дереве конфигурации), точки останова в нём игнорируются. Разблокируйте его через контекстное меню.
Также проверьте, что отладка вообще разрешена в настройках конфигуратора:
- Откройте
Сервис → Параметры. - Перейдите на вкладку
Отладка. - Убедитесь, что флажок
Разрешить отладкуустановлен.
Цвет точки — красный (активна)|Точка стоит на исполняемой строке|Модуль не заблокирован|Отладка разрешена в параметрах конфигуратора-->
Если всё верно, но точка по-прежнему не срабатывает, переходите к следующему разделу. Возможно, проблема кроется глубже — в режиме запуска или особенностях платформы.
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С:Предприятие в режиме конфигуратора.
- Выберите
Отладка → Подключить отладчик. - В открывшемся окне должен появиться список доступных рабочих процессов. Если список пуст — проблема с подключением.
Если отладчик сервера не подключается, попробуйте вручную указать адрес сервера в формате tcp://имя_сервера:1560 в поле подключения.
Если подключение установлено, но точки останова всё равно не срабатывают, проверьте настройки серверного кластера:
- Откройте
Администрирование кластера серверов. - Перейдите на вкладку
Отладка. - Убедитесь, что флажок
Разрешить отладкуустановлен для нужного рабочего процесса.
4. Особенности отладки в 1С:EDT (Eclipse)
Если вы используете 1С:EDT (среду разработки на базе Eclipse), алгоритм работы с точками останова отличается от классического конфигуратора. Здесь есть свои нюансы:
- 🔧 Конфигурация проекта: перед отладкой убедитесь, что проект в 1С:EDT привязан к правильной информационной базе. Для этого откройте
Свойства проекта → 1С:Enterprise → Информационные базы. - 🖥️ Режим запуска: в 1С:EDT по умолчанию может быть выбран
Веб-клиент, где отладка ограничена. Переключитесь наТолстый клиентчерез меню запуска (значок ▶️ рядом с кнопкойDebug). - 🔄 Синхронизация кода: если вы изменили код в 1С:EDT, но не синхронизировали его с базой, точки останова могут не срабатывать. Используйте
1С:Enterprise → Синхронизировать с информационной базой.
В 1С:EDT также есть дополнительные инструменты отладки, которых нет в классическом конфигураторе:
- Условные точки останова: можно настроить срабатывание только при выполнении определённого условия (например,
Количество > 100). - Точки останова на исключения: автоматически останавливают выполнение при возникновении ошибки.
- Логирование выражений: позволяет выводить значения переменных в консоль без остановки кода.
Чтобы поставить условную точку останова в 1С:EDT:
- Кликните правой кнопкой мыши на строке кода.
- Выберите
Toggle Breakpoint → Conditional Breakpoint. - Введите условие (например,
Документ.Сумма > 10000).
Как отладить HTTP-Сервис в 1С
EDT?:
В 1С:EDT для отладки HTTP-Сервисов необходимо:
1. Запустить проект в режиме Debug.
2. В браузере открыть URL сервиса с параметром ?debug=1 (например, http://localhost/ws/Service1?debug=1).
3. Выполнение кода остановится на точках останова, как в обычном режиме.
5. Точки останова не работают в фоновых заданиях и регламентных операциях
Отладка фоновых заданий и регламентных операций — отдельная история. Здесь точки останова часто игнорируются из-за особенностей выполнения кода на сервере. Вот что нужно проверить:
- 🕒 Время выполнения: фоновые задания могут выполняться по расписанию, когда вы не подключены к отладчику. Убедитесь, что задание запущено вручную (
Все функции → Фоновые задания → Выполнить). - 🔗 Подключение к рабочему процессу: даже если вы подключили отладчик к серверу, фоновое задание может выполняться в другом рабочем процессе. Проверьте список процессов в
Отладка → Подключить отладчик. - 📜 Права доступа: у пользователя, от имени которого выполняется задание, должны быть права на отладку. Проверьте роль
АдминистрированиеилиОтладкав настройках пользователя.
Для отладки регламентных операций:
- Откройте
Администрирование → Регламентные задания. - Найдите нужное задание и нажмите
Выполнить сейчас. - Быстро подключите отладчик к серверу (у вас есть несколько секунд, пока задание не завершится).
Фоновые задания и регламентные операции всегда выполняются на сервере. Для их отладки обязательно подключение к отладчику сервера 1С!
Если задание выполняется слишком быстро и вы не успеваете подключиться, добавьте в его код искусственную задержку (например, Подождать(10)) перед интересующим вас участком. Это даст время на подключение отладчика.
6. Конфликты с расширениями, внешними компонентами и антивирусами
Иногда точки останова не срабатывают из-за внешних факторов — расширений конфигурации, сторонних компонент или даже антивирусного ПО. Вот что может мешать:
- 🧩 Расширения конфигурации: если код, который вы отлаживаете, переопределён в расширении, точка останова в основном модуле не сработает. Проверьте, нет ли переопределений через
Конфигурация → Расширения. - 🛠️ Внешние компоненты: некоторые компоненты (например, 1C:Enterprise Development Tools или OneScript) могут конфликтовать с отладчиком. Отключите их временно через
Сервис → Внешние компоненты. - 🛡️ Антивирусы и фаерволы: программы вроде Kaspersky, ESET NOD32 или встроенный Windows Defender могут блокировать отладочные порты (
1560,1561). Добавьте исключения для1cv8.exeиragent.exe.
Как проверить влияние расширений:
- Откройте
Конфигурация → Расширения. - Отключите все расширения (снимите флажки
Использовать). - Перезапустите 1С и проверьте, срабатывает ли точка останова.
- Если да — включайте расширения по одному, чтобы найти виновника.
Чтобы временно отключить антивирус для теста, не удаляйте его — просто добавьте папку с 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 | При отладке Фоновых заданий точки останова игнорируются, если в коде есть Попытка...Исключение. |
Замените Попытка на явную проверку ошибок или добавьте Сообщить перед блоком. |
Если вы подозреваете, что проблема в баге платформы:
- Проверьте версию своей платформы в
Справка → О программе. - Найдите свою версию в таблице выше или поищите информацию на портале ИТС.
- Если баг подтверждён — обновите платформу или используйте обходной путь.
Перед обновлением платформы сделайте резервную копию информационной базы! В некоторых версиях (например, 8.3.22) меняется формат хранения данных.
Если вашей версии нет в таблице, но вы уверены, что проблема в платформе, создайте обращение в поддержку 1С с подробным описанием шагов для воспроизведения ошибки.
8. Альтернативные методы отладки, если точки останова не работают
Если вы перепробовали всё, но точки останова по-прежнему не срабатывают, не отчаивайтесь! В 1С:Предприятие есть несколько альтернативных способов отладки:
- 📢 Сообщить(): классический метод вывода отладочной информации. Добавьте в код строки вида
Сообщить("Значение переменной: " + Переменная). - 📝 Журнал регистрации: включите запись событий в журнал (
Администрирование → Журнал регистрации) и анализируйте логи. - 🔍 Пошаговое выполнение: вместо точек останова используйте пошаговую отладку (
F11для входа в процедуру,F10для выполнения строки). - 📊 Отладка через внешние инструменты: для
Веб-клиентаможно использоватьChrome DevTools(клавишаF12), а для серверных вызовов — Wireshark или Fiddler.
Пример использования Сообщить() для отладки:
Процедура РассчитатьСумму(Документ)
Сообщить("Начало расчета, сумма до: " + Документ.Сумма);
Документ.Сумма = Документ.Количество * Документ.Цена;
Сообщить("Сумма после: " + Документ.Сумма);
КонецПроцедуры
Для сложных сценариев (например, отладки HTTP-Сервисов или Обработок на стороне сервера) полезно комбинировать несколько методов. Например:
- Добавьте
Сообщить()в ключевых местах кода. - Включите запись в
Журнал регистрациис уровнем детализацииОтладка. - Используйте
F11для пошагового выполнения критичных участков.
Для вывода сложных структур (массивов, таблиц значений) в Сообщить() используйте функцию СтрокаСообщения() или ЗначениеВСтрокуВнутр().
Если вы работаете с 1С:EDT, там есть встроенный Log View (просмотр логов), который удобнее, чем Сообщить(). Чтобы вывести данные в лог, используйте:
Logger.DEBUG("Значение переменной: " + Переменная);
FAQ: Частые вопросы по отладке в 1С
Почему точка останова срабатывает не с первого раза?
Это может быть связано с:
- Кэшированием кода — попробуйте очистить кэш (
Сервис → Очистить кэш). - Особенностями
Тонкого клиента— иногда требуется повторный запуск отладки. - Багом платформы (например, в 8.3.20.1549 точки срабатывают со второго раза).
Как отладить код, который выполняется в фоновом задании?
Для отладки фоновых заданий:
- Подключите отладчик к серверу (
Отладка → Подключить отладчик). - Запустите задание вручную (
Все функции → Фоновые задания → Выполнить). - Убедитесь, что точка останова стоит в серверном коде (не на клиенте!).
Если задание выполняется быстро, добавьте в начало кода Подождать(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С.
- Проверьте настройки отладки в новой версии платформы.