Разработчики при отладке клиент-серверных баз в среде 1С:Предприятие 8.3 нередко сталкиваются с ситуацией: Конфигуратор запущен, пользовательский сеанс запущен в режиме тонкого клиента, в окне «Автоматическое подключение» отмечены все необходимые флаги, однако в списке доступных предметов отладки отображается исключительно Сервер. Сам же клиентский процесс на локальном компьютере в списке отсутствует, и точки останова в клиентских процедурах не срабатывают.
Проанализируем причины такого поведения платформы и подробно разберем по шагам все способы исправления этой ситуации: от штатного включения отладки в пользовательском режиме до тонких системных и сетевых настроек.
Платформа 1С:Предприятие в целях оптимизации сетевого трафика и безопасности запускает клиентские приложения с выключенным режимом отладки по умолчанию (если сеанс стартовал не напрямую из Конфигуратора по клавише F5). В таком режиме тонкий клиент просто не регистрирует себя в качестве доступного предмета отладки и не слушает порт отладчика.
Разберем, как включить отладку прямо в работающем сеансе 1С:Предприятия:
Сразу после применения этой настройки клиентское приложение инициирует соединение с отладчиком, и тонкий клиент появится в Конфигураторе в списке доступных предметов отладки меню «Отладка → Подключение».
Чтобы не выполнять включение вручную каждый раз при старте базы, настроим запуск тонкого клиента так, чтобы режим отладки активировался автоматически.
Рассмотрим два основных варианта реализации:
/debug. Посмотрим на пример строки запуска:"C:\Program Files\1cv8\8.3.24.1367\bin\1cv8c.exe" enterprise /S "server-1c\base_name" /debug
Параметр /debug указывает платформе запустить сеанс с уже активированным режимом ожидания подключений отладчика.
Начиная с версии 8.3.7, отладка в платформе 1С:Предприятие может осуществляться по двум различным протоколам: классическому TCP/IP или через выделенный сервер отладки по HTTP. Если Конфигуратор и тонкий клиент используют разные протоколы, обнаружение предметов отладки станет невозможным.
Проанализируем параметры конфигурационного файла 1cv8.cfg, расположенного в системном каталоге настроек платформы (%APPDATA%\1C\1Cv8\ или %LOCALAPPDATA%\1C\1Cv8\). Если один из процессов настроен на HTTP-отладку, для обоих приложений должны быть согласованы параметры:
-debugServerAddr и -debugServerPort./debuggerURL, указывающего точный адрес службы отладки HTTP.Если используется локальная отладка без внешнего HTTP-сервера, убедимся, что протокол отладки по умолчанию в Конфигураторе и клиенте не переопределен сторонними ключами.
Если подключение тонкого клиента к информационной базе осуществляется не напрямую по протоколу TCP к кластеру серверов 1С, а через веб-сервер (Apache или IIS), передача команд отладки может блокироваться параметрами веб-публикации.
Разберем, как проверить и скорректировать публикацию:
default.vrd, расположенный в каталоге опубликованной базы на веб-сервере.<debug enable="true" url="http://адрес_сервера_отладки:порт" />
При использовании стандартного протокола TCP отладчик Конфигуратора и исполняемый файл тонкого клиента 1cv8c.exe взаимодействуют через динамические локальные порты (традиционный диапазон 1560–1591).
Рассмотрим диагностику сетевых проблем:
1cv8c.exe могут блокироваться локальным экраном безопасности. Необходимо добавить правило, разрешающее входящие и исходящие соединения для исполняемых файлов Конфигуратора и клиента.::1 (IPv6), тогда как Конфигуратор пытается подключиться к 127.0.0.1 (IPv4). Если тонкий клиент не появляется в автоматическом списке, перейдем в диалог «Отладка → Подключение», нажмем кнопку поиска предметов отладки и явно укажем локальный IP-адрес или имя рабочей станции.Причина отсутствия клиента в списке отладки может лежать на уровне операционной системы: