Многие разработчики сталкиваются с ситуацией, когда привычный процесс отладки в 1С:Предприятии внезапно превращается в «мистику». Вы устанавливаете точку останова, запускаете сеанс, но при нажатии F11 (Шагнуть в) отладчик просто перепрыгивает строку, игнорируя вызов функции. В этой статье мы подробно разберем, почему это происходит, особенно на платформе версии 8.3.13, и какие шаги необходимо предпринять, чтобы вернуть стабильность рабочему процессу.
Рассмотрим стандартную ситуацию: вы находитесь в коде, нажимаете F11, ожидая зайти внутрь процедуры, но платформа ведет себя так, будто нажата клавиша F10. При этом внесение любого косметического изменения в код (например, лишнего пробела) и последующее обновление конфигурации базы данных на время «лечит» проблему. Проанализируем основные причины такого поведения:
Если вы заметили, что отладчик перестал заходить в функции, первым делом попробуем метод «полной перекомпиляции» модуля. Выясним, как это сделать правильно:
Внесем фиктивное изменение в текст модуля. Это может быть добавление пробела в пустой строке или комментария. Важно, чтобы Конфигуратор зафиксировал изменение объекта. После этого выполним следующие действия:
// Пример фиктивного изменения для обновления модуля
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Добавим временный комментарий для обновления кэша отладки
// {Обновление символов отладки}
ВыполнитьИнициализацию();
КонецПроцедуры
После внесения изменений необходимо сохранить конфигурацию и выполнить Обновить конфигурацию базы данных (желательно в монопольном режиме). Это заставит систему перегенерировать байт-код и обновить таблицу соответствия строк кода для отладчика.
Иногда проблема кроется в «зависшей» отладочной сессии. Рассмотрим по шагам, как корректно перезапустить среду:
F11.Если проблема носит массовый характер, проанализируем настройки сервера 1С. Для корректной отладки серверных модулей служба 1C:Enterprise 8.3 Server Agent должна быть запущена с параметром -debug. Если этого параметра нет, отладка может работать фрагментарно или не работать вовсе.
Также разберем процедуру очистки серверного кэша отладки. На сервере 1С в каталоге srvinfo (обычно это C:\Program Files\1cv8\srvinfo) существует папка snccntrc. В ней хранятся данные сеансов. При выключенной службе сервера удаление содержимого этой папки часто помогает решить «мистические» проблемы с проскакиванием точек останова.
Если вы работаете на 8.3.13 и «точка горит» от постоянных сбоев, стоит рассмотреть вопрос смены версии платформы. Проанализируем рекомендации опытных разработчиков:
8.3.12.1790 считается одной из самых стабильных для конфигураций, не требующих самых новых функций платформы (например, старые версии Управление торговлей).8.3.14.1779 и последующих ветках 8.3.15/16 была проведена большая работа над ошибками HTTP-отладки. Если ваша конфигурация (например, свежая ERP или УТ 11) требует современную платформу, лучше обновиться до актуальных стабильных сборок.Часто разработчик нажимает F11 на строке, которая инициирует фоновое задание, и ожидает провалиться внутрь кода этого задания. Разберем, почему это не происходит автоматически:
По умолчанию отладчик может быть не настроен на автоматическое подключение к фоновым заданиям. Чтобы это исправить, перейдите в Отладка — Настройка отладки и убедитесь, что флаг Автоматическое подключение установлен для фоновых заданий. В противном случае отладка просто завершится на моменте передачи управления менеджеру заданий.
Важный совет: В версии 8.3.13 даже при включенных настройках автоматическое подключение может «засыпать». В этом случае помогает ручное переподключение через меню Отладка — Подключение непосредственно в момент старта фонового процесса.
Мы выяснили, что «мистическое» поведение кнопки F11 в 1С чаще всего связано с недоработками конкретных релизов платформы или кэшированием старого кода. Для решения проблемы рекомендуем придерживаться следующего алгоритма: внесите мелкое изменение в код — обновите базу — перезапустите Конфигуратор. Если же это не помогает, единственным надежным способом будет переход на более стабильный релиз платформы, такой как 8.3.12.1790 или актуальные сборки 8.3.14+.