Что делать, когда сервис не работает
  1. Главная
  2. Не открывается
  3. Почему не работает отладка в 1С и как её проверить

Почему не работает отладка в 1С и как её проверить

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

Что внутри

  1. Сначала определите, что именно не срабатывает
  2. Проверьте, выполняется ли нужная ветвь кода
  3. Почему отладка работает на клиенте, но не на сервере
  4. Что проверить в файловой базе и веб-клиенте
  5. Если точка не срабатывает после изменения модуля
  6. Порядок диагностики без лишних изменений

Сначала определите, что именно не срабатывает

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

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

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

Проверьте, выполняется ли нужная ветвь кода

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

  1. Установите точку в обработчике пользовательского действия.
  2. После остановки выполните один шаг и проверьте значения условий.
  3. Найдите фактический вызов нужной процедуры.
  4. Уточните, передаётся ли управление на клиент или на сервер.
  5. Если вызова нет, ищите причину в логике маршрута, а не в настройках отладки.

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

Почему отладка работает на клиенте, но не на сервере

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

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

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

Что проверить в файловой базе и веб-клиенте

В файловом варианте путь короче: конфигуратор и запущенный клиент должны работать с одним каталогом базы. Закройте лишние экземпляры, заново запустите клиент из конфигуратора и повторите действие. Если отладка на клиенте всё равно не срабатывает, проверьте, не открыт ли интерфейс в другом приложении или под другим подключением.

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

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

Если точка не срабатывает после изменения модуля

Убедитесь, что редактируете основной модуль, а не его копию в расширении или хранилище. Затем сохраните изменения и выполните предусмотренную в вашей среде процедуру обновления. Если система предлагает перезапустить сеанс, сделайте это: уже работающий клиент может продолжать использовать ранее загруженную версию.

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

Полезный контрольный тест: добавьте точку в заведомо вызываемый обработчик, запустите клиент из того же конфигуратора и выполните одно действие. Если остановка происходит, базовый канал отладки исправен, а причину нужно искать в контексте конкретной процедуры.

Порядок диагностики без лишних изменений

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

НаблюдениеЧто проверитьСледующее действие
Не срабатывает ни одна точкаБаза, сеанс, подключённый клиентЗапустить тестовый сеанс из конфигуратора
Клиент останавливается, сервер нетСерверный предмет отладкиПередать проверку параметров администратору
Не выполняется одна процедураУсловия, вызов, расширениеПроследить путь от обработчика
Сбой возникает через мобильную сетьРазрыв веб-сеансаПовторить на устойчивом подключении

Перед обращением к администратору запишите версию платформы 8.3, вариант базы, тип клиента, момент исчезновения точки и последовательность действий. Не передавайте пароли, коды подтверждения и копии пользовательских данных. Для воспроизведения используйте тестовый пример без конфиденциальной информации.

Короткие ответы

Почему 1С не заходит в серверную процедуру при отладке?
Чаще всего процедура не вызывается по фактической ветви либо подключён только клиентский предмет отладки. Проверьте путь выполнения от обработчика и наличие серверного экземпляра в списке доступных предметов.
Что делать, если точки работают на клиенте, но не на сервере?
Убедитесь, что сервер разрешает отладочное подключение и относится к нужной информационной базе. Проверку параметров рабочего кластера лучше передать администратору, указав версию платформы, базу и воспроизводимые шаги.
Может ли ограниченный мобильный интернет мешать отладке 1С?
Да, при работе через веб-клиент разрыв соединения способен прервать запрос или отделить клиент от серверного сеанса. Повторите тот же сценарий на устойчивом разрешённом подключении, чтобы отличить сетевой сбой от ошибки кода.
Почему точка останова стала недоступной после изменения кода?
Запущенный сеанс может использовать прежнюю версию модуля, а выбранная строка — не быть самостоятельной исполняемой инструкцией. Сохраните и примените изменения, перезапустите сеанс при необходимости и перенесите точку на выражение или вызов.

Всё про службу

Похожая беда у других

Все разборы: не открывается

Не ваш случай?