Почему перестала работать отладка на сервере 1С после обновления до версии 8.3.18.1208 и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Проверка параметров запуска службы сервера 1С

Первым делом проанализируем настройки службы сервера. При обновлении платформы (удалении старой и установке новой версии) параметры запуска службы в системном реестре часто сбрасываются к значениям по умолчанию. Разберем по шагам, как проверить наличие ключа -debug:

  1. Остановим службу 1C:Enterprise 8.3 Server Agent через консоль управления службами (services.msc).
  2. Откроем редактор реестра (regedit) и перейдем по пути:
    
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)
    
  3. Найдем параметр ImagePath. Убедимся, что в строке запуска после пути к исполняемому файлу ragent.exe через пробел добавлен флаг -debug.
  4. Если флаг отсутствует, добавим его вручную.

Важный нюанс: Начиная с версии 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

Переподключение предметов отладки в конфигураторе

Иногда проблема кроется в «зависших» сессиях отладки внутри самого конфигуратора. Выясним причину, выполнив процедуру ручного переподключения:

Рассмотрим алгоритм действий непосредственно в конфигураторе:

  1. Запустим сеанс отладки (F5).
  2. В конфигураторе перейдем в меню Отладка — Подключение.
  3. В нижней таблице «Подключенные предметы отладки» выберем существующее серверное подключение и нажмем Отключить.
  4. В верхней таблице «Доступные предметы отладки» нажмем кнопку Обновить.
  5. Если серверный предмет не появился автоматически, нажмем Настройка и убедимся, что установлен флаг Искать предметы отладки на удаленном компьютере, указав имя вашего сервера.
  6. Выберем появившийся серверный предмет и нажмем Подключить.

Протоколы отладки: TCP/IP против HTTP

Проанализируем изменения в архитектуре платформы. Начиная с последних релизов ветки 8.3.18, приоритетным стал протокол HTTP. Если ваш конфигуратор настроен на TCP, а сервер ожидает HTTP (или наоборот), точка останова не сработает.

Зайдем в меню Сервис — Параметры, перейдем на вкладку Запуск 1С:Предприятия, далее выберем подвкладку Дополнительные. Здесь необходимо проверить способ отладки. Если на сервере прописан ключ -http, то и в настройках конфигуратора должен быть выбран протокол HTTP. Если же используется классический способ, убедитесь, что порты в диапазоне 1560–1591 не блокируются брандмауэром.

Настройка портов и сетевого экрана (Firewall)

Посмотрим на ситуацию со стороны сетевой безопасности. Для работы отладки по протоколу TCP сервер 1С должен иметь возможность инициировать обратное соединение с компьютером разработчика. Часто этому мешает Firewall или антивирус на локальной машине программиста.

Соответствие имен сервера и базы

Выясним причину, связанную с разрешением имен. В некоторых случаях 1С не может сопоставить текущий сеанс с базой из-за различий в написании имени сервера (например, использование IP-адреса вместо DNS-имени или разный регистр символов).

Рекомендуется прописать адрес сервера в файле hosts на локальной машине:

192.168.1.100 SERVER1C

Важно, чтобы имя сервера в списке баз конфигуратора полностью совпадало с именем, которое видит менеджер кластера. Также проверьте, чтобы в диалоге подключения предметов отладки (в поле поиска удаленного компьютера) имя было введено точно так же, как оно зарегистрировано в консоли администрирования 1С.

Очистка кэша отладки и прав доступа

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

  1. Закройте все окна 1С.
  2. Удалите содержимое папки %AppData%\1C\1cv8.
  3. Проверьте права пользователя, под которым запущена служба сервера 1С. Он должен входить в группу Performance Log Users (Пользователи журналов производительности) в локальных пользователях и группах операционной системы сервера.

В завершение отметим, что релиз 8.3.18.1208 признан многими специалистами как нестабильный в части инструментов разработчика. Если проблема сохраняется, а настройки выполнены верно, рекомендуется рассмотреть возможность перехода на более стабильные сборки, например, последние патчи веток 8.3.21 или 8.3.22, где многие ошибки взаимодействия отладчика и сервера были исправлены.

← На главную