Содержание:
2. Активация Режима Отладки (-debug) в системе программ 1С:Предприятие
3. Подключение Отладчика из Конфигуратора программы 1С
4. Инициирование Внешнего Запроса в 1С
5. Важные Моменты и Предостережения при работе с программой 1С
Веб-сервисы (SOAP) и HTTP-сервисы (чаще REST-подобные) – мощные инструменты платформы 1С:Предприятие, позволяющие интегрировать учетную систему с внешними приложениями, сайтами, мобильными клиентами и другими системами. Однако разработка и, что еще важнее, отладка логики, выполняющейся при внешнем вызове этих сервисов, может стать непростой задачей. В отличие от интерактивной отладки клиентского или серверного кода, инициированного пользователем в 1С, код сервисов выполняется в отдельном контексте, часто в рамках рабочего процесса сервера 1С (rphost) или модуля расширения веб-сервера. Как же "заглянуть внутрь" и понять, что происходит при обработке внешнего запроса?
Проблема: Невидимое Исполнение
Когда внешняя система отправляет запрос к опубликованному в 1С веб- или HTTP-сервису, код соответствующего обработчика (например, процедуры в модуле сервиса) выполняется на сервере 1С. Стандартные точки останова, расставленные в Конфигураторе, в обычном режиме работы не сработают, так как отладчик не "знает" об этом внешнем запросе и не подключен к процессу, который его обрабатывает.
Решение: Активация Режима Отладки на Сервере
Ключ к решению – запуск серверных процессов 1С или модуля веб-сервера в специальном режиме, разрешающем подключение отладчика к этим фоновым или серверным вызовам. Основной механизм – использование параметра запуска -debug.
1. Шаги по включению отладки
Определение Места Публикации:
Публикация напрямую из 1С: Если сервисы публикуются без использования отдельного веб-сервера (IIS, Apache), отладка будет происходить в рабочих процессах сервера 1С:Предприятие (rphost).
Публикация через веб-сервер (IIS/Apache): Если используется веб-сервер, то запросы сначала обрабатываются модулем расширения веб-сервера (например, wsisapi.dll, wsap24.dll), который затем взаимодействует с кластером серверов 1С. В этом случае отладка часто требуется именно для процесса сервера 1С (rphost), но иногда может понадобиться отладка и самого модуля расширения.
2. Активация Режима Отладки (-debug) в системе программ 1С:Предприятие
Для сервера 1С (rphost):
Необходимо запустить агент сервера 1С:Предприятие (ragent.exe) с параметром -debug. Это делается через оснастку "Службы" (Services) Windows:
Найдите службу Агент сервера 1С:Предприятие 8.x (имя может немного отличаться).
Откройте её свойства.
На вкладке "Общие" в поле "Исполняемый файл" добавьте параметр -debug после пути к ragent.exe (например: "C:\Program Files\1cv8\8.3.xx.xxxx\bin\ragent.exe" -debug ... другие параметры ...). Важно: Добавлять именно к ragent.exe, а не к rmngr.exe.
Примените изменения.
Перезапустите службу Агента сервера 1С. Это приведет к перезапуску всех рабочих процессов (rphost), которые теперь будут запущены с возможностью отладки.
Для модуля веб-сервера (менее частый случай, для отладки самого модуля): Настройка отладки для модулей IIS/Apache зависит от конкретных инструментов и сред разработки (например, Visual Studio для IIS).
3. Подключение Отладчика из Конфигуратора программы 1С
Запустите Конфигуратор той информационной базы, чьи сервисы вы хотите отлаживать.
Расставьте точки останова в коде обработчиков веб- или HTTP-сервисов.
Перейдите в меню "Отладка" -> "Подключение...".
В открывшемся окне "Подключение для отладки":
Убедитесь, что сервер 1С (или веб-сервер, если отлаживаете его модуль) доступен с машины, где запущен Конфигуратор.
В списке "Предметы отладки" найдите серверные процессы. Они обычно идентифицируются как "Рабочий процесс" (rphost.exe) или, при публикации через веб-сервер, могут появляться элементы, связанные с веб-сервером (например, w3wp.exe для IIS с указанием модуля 1С).
Установите флажок напротив нужного процесса (или всех серверных процессов для надежности).
Нажмите кнопку "Подключиться".
4. Инициирование Внешнего Запроса в 1С
Теперь отправьте тестовый запрос к вашему веб- или HTTP-сервису из внешней системы (Postman, SoapUI, другой программы, сайта).
Если все настроено верно, выполнение остановится на вашей точке останова в Конфигураторе, и вы сможете пошагово отлаживать код, анализировать переменные и т.д.
5. Важные Моменты и Предостережения при работе с программой 1С
Производительность: Работа сервера 1С в режиме отладки (-debug) снижает производительность. Не оставляйте этот режим включенным на продуктивных серверах после завершения отладочных работ!
Безопасность: Включение режима отладки потенциально открывает возможность подключения к серверным процессам. Используйте это только в доверенных средах (разработки, тестирования).
Перезапуск: Помните, что после добавления/удаления флага -debug требуется перезапуск службы Агента сервера 1С.
Автоматическое подключение: В окне "Подключение для отладки" есть опция "Автоматическое подключение", которая может упростить процесс при частых перезапусках сервера или конфигуратора.
Включение отладки для веб- и HTTP-сервисов превращает их из "черного ящика" в прозрачный механизм, позволяя разработчикам быстро находить и устранять ошибки, обеспечивая корректную и надежную интеграцию 1С с внешним миром. Главное – помнить о мерах предосторожности и отключать отладку на продуктивных системах.
Специалист компании ООО "Кодерлайн"
Степан Радченко