Многие разработчики 1С сталкиваются с досадной ситуацией: при запуске отладки из конфигуратора в списке подключенных предметов отладки периодически не видно серверного сеанса. Отладка на клиенте работает корректно, а серверный код выполняется без остановок на точках останова. При перезапуске отладки сеанс может появиться, но затем снова самопроизвольно «отваливается». Давайте разберем по шагам, почему это происходит, и проанализируем эффективные способы решения этой проблемы.
В первую очередь выясним причину, связанную с самой платформой. Как показывает практика, периодическое пропадание серверного предмета отладки может быть прямым следствием ошибок (багов) в конкретном релизе 1С:Предприятие. Например, разработчики часто отмечали нестабильную работу отладчика в тестовых или переходных релизах (таких как некоторые сборки 8.3.10 или 8.3.13).
Что делать: Если вы столкнулись с подобным поведением, проанализируем текущую версию платформы. Для рабочих баз настоятельно не рекомендуется спешить с установкой самых последних или тестовых релизов, если в этом нет острой необходимости. Посмотрим на пример из практики: переход на проверенную длительной эксплуатацией версию (в обсуждении приводилась в пример 8.3.12.1790) часто полностью решает проблему — сервер при отладке перестает пропадать, а конфигуратор работает без сбоев.
Рассмотрим подробнее механизм взаимодействия конфигуратора и сервера. По умолчанию отладка в 1С работает по протоколу TCP/IP. Именно этот стандартный протокол наиболее чувствителен к нестабильности сети и микрообрывам соединения, из-за чего предмет отладки типа «Сервер» может исчезать.
Многие специалисты отмечают, что перевод службы агента сервера 1С на протокол HTTP кардинально повышает стабильность. HTTP-отладка работает через специальный сервер-координатор и значительно лучше справляется с сетевыми задержками.
Как настроить: В параметрах запуска службы ragent.exe замените стандартный ключ отладки на ключи, включающие HTTP. Запуск должен производиться с параметрами -debug -http. После изменения параметров не забудьте перезапустить службу сервера 1С.
Посмотрим на сетевую составляющую. Отладчик 1С работает не только на исходящие соединения, но и должен беспрепятственно принимать входящие пакеты от сервера. Если брандмауэр блокирует обратный трафик, конфигуратор просто «потеряет» серверный сеанс.
Убедитесь, что в настройках Firewall (как на самом сервере 1С, так и на вашей локальной машине разработчика) открыт необходимый диапазон портов. По умолчанию для отладки 1С используются порты с 1560 по 1591. Создайте разрешающие правила для входящих и исходящих соединений по этим портам.
Иногда конфигуратор теряет связь с сервером из-за проблем с преобразованием имени сервера в его IP-адрес. Маршрутизация может сбоить, особенно в сложных корпоративных сетях.
hosts на компьютере, где запущен конфигуратор.Если обновление платформы или изменение протокола в данный момент недоступны, рассмотрим временные рабочие маневры (воркэраунды), которые позволяют продолжить работу.
Ручное переподключение: Если после запуска вы видите, что сервер отваливается, зайдите в меню конфигуратора «Отладка» — «Подключение». Вручную отключите предмет отладки типа «Сервер», а затем немедленно подключите его обратно из списка доступных предметов. Часто после такой ручной манипуляции сеанс стабилизируется и больше не пропадает до закрытия конфигуратора.
Очистка пользовательского кэша: Если отладка пролетает мимо точек останова, выполните полную очистку кэша 1С текущего пользователя. Если вы ведете разработку на терминальном сервере, иногда помогает полный выход из терминальной сессии (разлогин) и повторное подключение, так как это сбрасывает зависшие временные файлы сеанса.
Подводя итог, можно сказать, что стабильность серверной отладки в 1С зависит от комплекса факторов: от выбора надежного релиза платформы до правильной настройки сетевых протоколов. Пройдя по описанным выше шагам, вы с высокой вероятностью сможете устранить раздражающее пропадание предметов отладки и сделать процесс разработки комфортным.