В процессе разработки на платформе 1С:Предприятие 8 программисты часто сталкиваются с ситуацией, когда отладка прекрасно работает в файловом режиме, но при переходе на клиент-серверный вариант (SQL) отладчик перестает "заходить" в процедуры и функции, помеченные директивой &НаСервере — для этой задачи есть инструмент пошаговой отладки кода в 1С:Предприятии. Это создает серьезные трудности, так как разработчик видит лишь входные параметры и конечный результат, теряя возможность проанализировать промежуточные вычисления внутри серверного контекста. Рассмотрим подробно, почему это происходит и как настроить систему для полноценной работы.
По умолчанию сервер 1С:Предприятия запускается в оптимизированном режиме, который не предполагает возможность отладки. Это сделано для экономии ресурсов и повышения безопасности. Чтобы включить отладку, необходимо явно указать ключ -debug в параметрах запуска службы. Разберем по шагам, как это сделать в операционной системе Windows.
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.3 Server Agent
ImagePath. В нем содержится строка запуска исполняемого файла ragent.exe.-debug. Важно: перед ключом обязательно должен быть пробел. Пример итоговой строки:
"C:\Program Files\1cv8\8.3.22.1709\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Проанализируем ситуацию: теперь сервер 1С готов принимать запросы от отладчика. Однако помните, что включение этого режима на "боевом" сервере может снизить его производительность на 10-20%, поэтому после завершения работ ключ рекомендуется убрать.
Одной из самых неочевидных проблем является разница в написании имени базы. Отладчик 1С очень чувствителен к регистру символов и точному строковому соответствию. Если в списке баз у пользователя база называется Trade_Base, а в консоли администрирования сервера 1С она прописана как trade_base, отладка на сервере работать не будет.
Выясним причину такого поведения: при попытке зайти в серверный вызов конфигуратор запрашивает у сервера список предметов отладки. Сервер отдает список баз, и если имя базы в конфигураторе не совпадает (символ в символ) с именем на сервере, конфигуратор просто "не узнает" свою базу и проигнорирует серверный контекст.
Решение: приведите имена баз к единому виду везде: в настройках подключения клиента и в консоли кластера серверов 1С.
Даже если сервер настроен правильно, конфигуратор может не знать, что вы хотите отлаживать именно серверные вызовы. Проверим настройки автоматического подключения предметов отладки:
Это позволит отладчику автоматически "подцеплять" серверный сеанс при начале выполнения кода. Особенно это важно для отладки Фоновых заданий, так как они выполняются в отдельном сеансе, который без этой настройки поймать практически невозможно.
Отладка в 1С использует определенный диапазон TCP-портов. Если между компьютером разработчика и сервером стоит Firewall (брандмауэр) или они находятся в разных подсетях, порты могут быть заблокированы.
Рассмотрим технические детали: сервер 1С использует порты из диапазона 1560-1591 для обмена данными с отладчиком. Убедитесь, что эти порты открыты на входящие соединения на сервере и на исходящие на стороне клиента. Если вы используете современный протокол HTTP для отладки (доступен в последних версиях платформы), убедитесь, что правильно настроен адрес сервера отладки в меню Сервис — Параметры — Запуск 1С:Предприятия — Отладка.
Если ваш сервер 1С работает под управлением ОС Linux, правка реестра Windows не поможет. Разберем, как включить отладку в этой среде. Вам необходимо отредактировать конфигурационный файл службы srv1cv83. В зависимости от дистрибутива (Ubuntu, CentOS, Astra Linux), файл может находиться в /etc/init.d/ или /etc/sysconfig/.
Найдите переменную SRV1CV8_DEBUG и установите её значение в 1:
# Пример в файле конфигурации
SRV1CV8_DEBUG=1
После внесения изменений перезапустите службу сервера командой systemctl restart srv1cv83 или аналогичной.
Если после выполнения всех инструкций отладчик по-прежнему игнорирует серверный код, попробуйте следующее:
%AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8 на клиентской машине. Иногда "старые" данные о сессиях мешают корректному подключению.Применяя эти шаги последовательно, мы обеспечим стабильную работу отладчика в любых условиях. Помните, что качественная отладка — это залог быстрого поиска ошибок и стабильной работы информационной системы.