При обновлении платформы 1С:Предприятие до версии 8.3.18.1208 и выше разработчики часто сталкиваются с неприятной ситуацией: серверные процедуры перестают останавливаться на точках останова. При этом клиентская часть отлаживается штатно, а предмет отладки Сервер либо не появляется вовсе, либо требует ручного поиска, но даже после подключения не реагирует на действия отладчика. Рассмотрим подробнее, почему это происходит и как восстановить работоспособность инструментов разработки. В качестве альтернативного варианта, если оперативно наладить штатный механизм не удается, можно использовать расширение для анализа данных и отладки запросов под пользователем.
Первым делом проанализируем настройки службы сервера. При обновлении платформы (удалении старой и установке новой версии) параметры запуска службы в системном реестре часто сбрасываются к значениям по умолчанию. Разберем по шагам, как проверить наличие ключа -debug:
1C:Enterprise 8.3 Server Agent через консоль управления службами (services.msc).regedit) и перейдем по пути:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)
ImagePath. Убедимся, что в строке запуска после пути к исполняемому файлу ragent.exe через пробел добавлен флаг -debug.Важный нюанс: Начиная с версии 8.3.18, 1С активно переходит на использование протокола HTTP для отладки. Рассмотрим ситуацию, когда обычного флага может быть недостаточно. Попробуйте прописать в реестре комбинированный ключ:
"C:\Program Files\1cv8\8.3.18.1208\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug -http
Иногда проблема кроется в «зависших» сессиях отладки внутри самого конфигуратора. Выясним причину, выполнив процедуру ручного переподключения:
Рассмотрим алгоритм действий непосредственно в конфигураторе:
Проанализируем изменения в архитектуре платформы. Начиная с последних релизов ветки 8.3.18, приоритетным стал протокол HTTP. Если ваш конфигуратор настроен на TCP, а сервер ожидает HTTP (или наоборот), точка останова не сработает.
Зайдем в меню Сервис — Параметры, перейдем на вкладку Запуск 1С:Предприятия, далее выберем подвкладку Дополнительные. Здесь необходимо проверить способ отладки. Если на сервере прописан ключ -http, то и в настройках конфигуратора должен быть выбран протокол HTTP. Если же используется классический способ, убедитесь, что порты в диапазоне 1560–1591 не блокируются брандмауэром.
Посмотрим на ситуацию со стороны сетевой безопасности. Для работы отладки по протоколу TCP сервер 1С должен иметь возможность инициировать обратное соединение с компьютером разработчика. Часто этому мешает Firewall или антивирус на локальной машине программиста.
1562 (порт по умолчанию для HTTP-отладки).1cv8.exe добавлен в исключения брандмауэра Windows на локальном ПК.Выясним причину, связанную с разрешением имен. В некоторых случаях 1С не может сопоставить текущий сеанс с базой из-за различий в написании имени сервера (например, использование IP-адреса вместо DNS-имени или разный регистр символов).
Рекомендуется прописать адрес сервера в файле hosts на локальной машине:
192.168.1.100 SERVER1C
Важно, чтобы имя сервера в списке баз конфигуратора полностью совпадало с именем, которое видит менеджер кластера. Также проверьте, чтобы в диалоге подключения предметов отладки (в поле поиска удаленного компьютера) имя было введено точно так же, как оно зарегистрировано в консоли администрирования 1С.
Если вышеперечисленные шаги не помогли, проанализируем состояние временных файлов. Кроме обычного пользовательского кэша, существуют настройки отладчика, которые могут содержать некорректные идентификаторы сеансов после обновления платформы.
%AppData%\1C\1cv8.В завершение отметим, что релиз 8.3.18.1208 признан многими специалистами как нестабильный в части инструментов разработчика. Если проблема сохраняется, а настройки выполнены верно, рекомендуется рассмотреть возможность перехода на более стабильные сборки, например, последние патчи веток 8.3.21 или 8.3.22, где многие ошибки взаимодействия отладчика и сервера были исправлены.