1с не работает отладка http сервиса

Обновлено: 07.07.2024

Например, имеется внутренняя сеть организации, в которой развернуто окружение разработки, есть несколько серверов и запущен сервер отладки. Разработка и отладка внутри сети выполняется постоянно, и возникающие ошибки исправляются оперативно. Помимо этого продуктивный контур этой организации находится во внешней сети и подключение к основному серверу реализовано с помощью защищенного подключения к веб серверу. Кроме открытого порта 443 доступ к внутренней сети отсутствует. Для того, чтобы выполнить отладку сотруднику приходится просить воспроизведения сценария, либо подключаться удаленно для того, чтобы составить сценарий самостоятельно. Возможности отладки напрямую в такой ситуации отсутствуют.

Решением таких проблем является настройка и перенаправление запросов отладки через соединение с веб сервером, либо использование агента 1С:Link (при условии, что используется данная технология). Ниже представлены примеры настройки перенаправления запросов к серверу отладки для веб серверов Nginx и IIS , а также подключение к серверу отладки с помощью агента 1С:Link .

2. 1С:Линк

При установке агента 1C:Link и публикации сервера, на компьютере на котором расположен сам агент открывается дополнительный тунель для порта 1550 .Канал работает только для локального адреса, без возможности указания порта сервера отладки. Тунель открывается и слушает порт в не зависимости от того, запущен сервер отладки или нет.

1C:Enterprise 8.3 Debug Server (8.3.17.1091) © 1C-Soft LLC 1996-2019 - it works!

Настройка удаленного подключения к опубликованному серверу отладки

Настройка выполняется в конфигураторе в меню " Сервис " > " Параметры ", вкладка "Отладка":


Примените изменения и перезапустите конфигуратор.

Для проверки работоспособности сервера, откройте окно подключения предметов отладки (меню " Отладка " > " Подключение "):


Если при перезапуске конфигуратора возникла ошибка , то необходимо проверить доступность сервера и публикации, с того компьютера, на котором запущен конфигуратор.

Для подключения клиента 1С:Предприятия для отладки, необходимо в параметрах запущенного приложения (" Файл " > " Настройки ") разрешить отладку в текущем сеансе и указать сервер отладки :


После этого подключить необходимый клиент для отладки в конфигураторе.


3. Настройка веб сервера

Предполагается, что сервер отладки запущен на внутреннем сервере и работает на порту 1550 . В качестве имени внутреннего сервера, для примера, является internal. server.01 . Адрес веб сервера external. server.02. Имя ресурса debugger может быть произвольным и используется в качестве примера.

3.1. Nginx

Для того, чтобы можно перенаправлять запросы к северу отладки через Nginx , необходимо добавить в настройки описания доступных ресурсов веб сервера (конфигурационные файлы в sites-available ) следующее правило расположения в секции server:

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

После настройки конфигурационного файла убедиться, что команда nginx –t не возвращает информацию об ошибках.

1C:Enterprise 8.3 Debug Server (8.3.17.1091) © 1C-Soft LLC 1996-2019 - it works!

3.2. Настройка сервера IIS

Для того, чтобы IIS умел перенаправлять запросы, необходимо установить дополнительно компоненты « URL Rewrite » и « Application Request Routing ». Это можно сделать либо с помощью Web Platform Installer , либо вручную по следующим ссылкам:

После установки в консоли управления IIS для публикации сайта появится новый пункт меню:


Необходимо нажать на новый пункт меню и в открывшемся окне нажать кнопку «Добавить правила».

Откроется окно, в котором укажите адрес внутреннего сервера отладки (internal.server01:1550) и нажмите ОК .


Правило будет создано и его нужно будет открыть из списка правил для дополнительной настройки.

В окне настроек правила укажите следующие параметры:


Для завершения настройки осталось добавить правило перенаправления с порта 443 источника и нажать кнопку « Применить »:


После применения правила перезапустите сервер IIS .

Способ проверки работоспособности перенаправления запросов в сервер отладки, такой же как и при настройке Nginx.

4. Ссылки

1С:Предприятие. Документация :: Глава 32. Отладка и тестирование прикладных решений

Эта статья рассказывает о том, как включить отладку на сервере 1С 8.1, 8.2 и 8.3 в операционных системах Windows и Ubuntu.

Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:

  • Как включить отладку на сервере 1С

Включаем отладку на сервере 1С в Windows

Запускаем редактор реестра, выполнив команду regedit (при помощи Win+R или Пуск->Выполнить).

Запускаем Regedit

Запускаем Regedit

Затем, в редакторе реестра открываем:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\1C:Enterprise 8.3 Server Agent (x86-64)

Для версий 8.1 и 8.2 делаем тоже самое, только последняя часть пути будет отличаться в зависимости от версии сервера.

Редактор реестра

Редактор реестра

После этого в параметре ImagePath (подчеркнут на картинке сверху) добавляем -debug, например было:

"C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"

"C:\Program Files\1cv8\8.3.8.2197\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug

Изменяем ImagePath

Изменяем ImagePath

Перезапускаем агент сервера 1С

Перезапускаем агент сервера 1С

Готово — теперь отладка на сервере 1С должна заработать.

Описанные выше операции позволяют включить отладку на сервере по протоколу TCP/IP (это вариант по умолчанию) и в подавляющем большинстве случаев это как раз то, что нужно.

Если используется удаленный сервер отладки, то нужно дополнительно указать адрес этого сервера, порт и пароль (если требуется) добавляя соответствующие параметры — -debugServerAddr, -debugServerPort и -debugServerPwd, например:

Включаем отладку на сервере 1С в Ubuntu

В начале становим сервер:

sudo service srv1cv83 stop

После этого открываем от имени суперпользователя файл /etc/init.d/srv1cv83 и находим в нем строку:

И приводим ее к такому виду:

Затем запускаем сервер вновь:

sudo service srv1cv83 start

О том, как установить сервер 1С на Ubuntu 16.04/18.04 можно прочитать в этой статье.

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

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

(оценок: 3, средняя оценка: 5,00 из 5)


Вопрос: «Что делать, если стоят точки останова, при этом платформа выполняет проведение без остановки? Куда смотреть?».

Причина: по умолчанию отладка на сервере выключена.

Куда смотрим и что проверяем

1. Добавьте ключ «-debug» в строке запуска службы «Агент сервера 1С:Предприятия 8.3».

Например, по умолчанию строка такая (условно):

«C:\Program Files\1cv8\8.x.xx.xxxx\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»

Запуск с опцией отладки:

«C:\Program Files\1cv8\8.x.xx.xxxx\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «C:\Program Files\1cv8\srvinfo»

Условия запуска меняются в реестре — через строковый параметр «ImagePath». Раздел находится здесь в зависимости от разрядности:

  • HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent
  • HKLM\SYSTEM\CurrentControlSet\services\1C:Enterprise 8.3 Server Agent (x86-64)

Для активации потребуется рестарт службы либо перезагрузка сервера.

2. В меню «Сервис — Параметры — Запуск 1С:Предприятия — Дополнительные» включите опции:

  • «Устанавливать режим разрешения отладки»;
  • «Начинать отладку при запуске»

3. Через Конфигуратор откройте «Отладка — Подключение» — какие сеансы у вас показываются в предметах отладки; поставьте настройки в окне «Автоматическое подключение».

Например, автоматически подключать «Клиентские и внешние соединения на сервере» или «Фоновые задания» в зависимости от задачи.

4. При использовании отладки по протоколу TCP/IP возможно потребуется настройка правил брандмауэра.

Проверьте эти моменты и, скорее всего, отладка в серверном режиме у вас заработает.

Ниже рассмотрим основные методы использования механизма отладки в виде практической инструкции на конкретном примере.

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

список точек останова

Запуск отладки в 1С

запуск отладки

Отладка фоновых заданий 1С

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Включение отладки фоновых заданий и внешних соединений

В этом окне Вы можете установить соответствующий флаг.

Установка точки останова (брейкпойнта)

открытие обработчика

Для того чтобы установить точку останова, необходимо найти нужный программный код и кликнуть дважды на поле, слева от поля ввода кода (или нажать кнопку F9):

установка точки остановки

спиоск активных точек останова

Точка останова 1С с условием (синяя)

Например, остановим цикл на строке с номером 25:

точка останова с условием 1с

Неактивная точка останова (серая)

серая точка останова

Точка останова по ошибке

остановка по ошибке

Пошаговое перемещение по программному коду 1С

После установки точки останова необходимо инициировать выполнение нужного программного кода, чтобы система вошла в пошаговое исполнения кода. Отображение стрелки свидетельствует о запуске режима пошагового выполнения кода:

активация отладки

Чтобы перейти с текущего положения курсора к нужному, минуя промежуточные строчки кода, необходимо установить курсор на нужной строке и нажать shift + F10 (Идти до курсора).

Анализ значений в режиме отладки 1С

Посмотреть значения определенных значений можно разными способами:

Отображение значения при наведении курсора

отображение значения переменной курсором

вычисление выражения

Очень полезно использовать вычисление выражения и выполнить запрос, выгрузить в таблицу значений и посмотреть её.

С помощью него Вы можете подробно узнать, откуда была вызвана процедура и с какими параметрами:

стек вызовов

Смотрите также обзорное видео по отладке в 1С:

Другие статьи по 1С:

Читайте также: