- Отладка по протоколам HTTP и TCP/IP в 1С
- Предмет отладки
- Выбор протокола отладки
- Протокол отладки TCP/IP
- Подключение предметов отладки
- Протокол отладки HTTP
- Сервер отладки
- Подключение предметов отладки
- Отладка 1С по протоколу TCP-IP/HTTP
- Для включения отладки TCP/IP, на стороне сервера нужно дополнить параметры запуска службы
- Для включения отладки HTTP, на стороне сервера нужно дополнить параметры запуска службы
- Исправление ошибки Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP
Отладка по протоколам HTTP и TCP/IP в 1С
Отладку можно проводить при помощи двух различных протоколов: по TCP/IP (вариант по умолчанию) и по HTTP, при этом оба протокола предоставляют достаточно похожие возможности. Собственно, эта статья и посвящена рассмотрению особенностей этих двух протоколов, также в ней рассказывается о том, что такое предмет отладки.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Предмет отладки
Начнем с обсуждения такого понятия, как «предмет отладки». Предмет отладки — это контекст встроенного языка, который характеризуется такими параметрами как:
- имя пользователя;
- тип предмета отладки;
- номер сеанса;
- имя компьютера и номер порта при отладки по TCP/IP;
- имя информационной базы при отладке по HTTP.
- тонкий клиент — код исполняемый в тонком клиенте;
- веб-клиент — код исполняемый в веб-клиенте;
- толстый клиент — код исполняемый в толстом клиенте;
- клиент (мобильное приложение) — код исполняемый в клиентском приложении, на мобильном устройстве (только HTTP);
- сервер — код исполняемый на сервере;
- сервер (файловый вариант) — код исполняемый на сервере, в файловом варианте;
- сервер (мобильное приложение) — код исполняемый на сервере, в файловом варианте, на мобильном устройстве (только HTTP);
- COM-соединение — код исполняемый через внешнее соединение;
- Web-сервис — код исполняемый при вызовах методов Web-сервисов;
- HTTP-сервис — код исполняемый при вызовах методов HTTP-сервисов;
- фоновое задание — код исполняемый в фоновом задании;
- фоновое задание (файловый вариант) — код исполняемый в фоновом задании (в файловом варианте);
- фоновое задание (мобильное приложение) — код исполняемый в фоновом задании (в файловом варианте) на мобильном устройстве (только HTTP).
Подключение предметов отладки зависит от выбранного протокола отладки и поэтому будет рассмотрено ниже.
Выбор протокола отладки
Выбрать протокол отладки можно в конфигураторе: Главное меню->Сервис->Параметры->вкладка «Отладка»:
При выборе варианта отладки по протоколу HTTP поля диалога становятся доступными для редактирования. Этот диалог может незначительно отличаться (доступностью полей и значениями по умолчанию) в зависимости от информационной базы.
Группа «Сервер отладки» позволяет указать, каким сервером отладки нужно воспользоваться:
- Использовать локальный сервер отладки — вариант в основном для файловых информационных баз, в дополнительных полях можно указать адрес сетевой карты (если их несколько), а также один или несколько диапазонов портов которые будут использоваться для отладки, например: 1560:1591, 7700-8000;
- Использовать удаленный сервер отладки — конфигуратор попытается подключиться к удаленному серверу отладки по указанному адресу и порту;
- Использовать сервер отладки кластера — используется сервер отладки кластера серверов, кластер серверов должен быть запущен в отладочном режиме.
Группа «Имя информационной базы» позволяет указать имя информационной базы, под которым отладчик зарегистрируется на сервере отладки. Если доступ к серверу отладки защищен паролем, то этот пароль можно указать в группе «Доступ».
Протокол отладки TCP/IP
При отладке по протоколу TCP/IP отладчик ищет доступные предметы отладки на текущем или указанном компьютере. Для корректной работы отладчика (если конечно речь идет не о файловой базе на одного пользователя) очень рекомендуется нормально настроить сеть — в частности DNS-сервер и доступность отладочных портов (по-умолчанию 1560:1591).
Подключение предметов отладки
Для выполнения отладки модуля нужно подключить предмет отладки. Подключенные и доступные для подключения предметы отладки, а также настройки отладчика и автоматического подключения можно увидеть в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):
В список доступных предметов отладки попадают только те из них, которые отвечают следующим требованиям:
- отладчик и предмет отладки имеют одинаковый идентификатор информационной базы;
- в приложении включена возможность отладки (для сервера — см. первую статью серии, для клиентского приложения — соответствующий параметр командной строки либо свойство в диалоге настройки клиентского приложения либо соответствующие указания в конфигурационном файле);
- отсутствуют в списке подключенных предметов отладки.
«Параметры»)» width=»470″ height=»602″/>
Кнопка «Настройка…» открывается окно с настройками:
В этом окне можно изменить отладочные порты которые будет сканировать отладчик в поисках подходящих предметов отладки. Кроме этого можно узнать адрес отладчика (строка «Отладчик:»), этот адрес пригодится при различных видах отладки в файловых базах (подробнее об этом в следующей статье).
Некоторые типы предметов отладки остаются доступными для подключения очень непродолжительное время, в этом случае нужно воспользоваться настройками автоматического подключения предметов отладки:
Настройку отладки сервисов (Web, HTTP, OData) в файловой базе следует выполнять в диалоге публикации на веб-сервере (подробнее об этом в следующей статье).
Протокол отладки HTTP
Отладка по протоколу HTTP доступна начиная с версии технологической платформы 8.3.7. При этом для отладки клиент-серверной информационной базы сервер должен быть запущен в режим отладки по протоколу HTTP, о том как это сделать читайте в предыдущей статье серии.
Основное отличие отладки по протоколу HTTP заключается в наличии специального приложения — сервер отладки, который занимается координацией процесса отладки. Отладчик и предметы отладки общаются с сервером отладки по протоколу HTTP, поэтому нужно убедиться, что протокол HTTP не блокируется какими-либо прокси-серверами, брандмауэрами или чем-то другим.
Сервер отладки
Сервер отладки обычно запускается конфигуратором (в файловом варианте) или кластером серверов (если кластер запущен в режиме отладки).
Кроме этого сервер отладки может быть запущен вручную — для реализации нетривиальных сценариев отладки.
Сервер отладки (dbgs) находится в каталоге bin, параметр —help покажет информацию об имеющихся параметрах запуска (там все довольно понятно), пример запуска:
C:\Program Files\1cv8\8.3.13.1513\bin\dbgs -a 192.168.0.170 -p 4000
Подключение предметов отладки
Как и в случае с отладкой по протоколу TCP/IP, для выполнения отладки по HTTP требуется, что бы предмет отладки был подключен. Управления предметами отладки все также происходит в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):
В список доступных предметов отладки попадают все предметы отладки зарегистрированные на используемом сервере отладки для информационной базы, имя которой указывается в настройках (см. «Выбор протокола отладки»).
Из списка доступных предметов отладки исключаются уже подключенные и не соответствующие отбору предметы отладки. Отбор можно установить в правой верхней части окна:
В окне настроек отладчика можно узнать адрес сервера отладки и имя информационной базы:
Для настройки автоматического подключения предметов отладки существует специальный диалог:
В левой части диалога можно указать типы предметов отладки, которые подлежат автоматическому подключению, а в правой — дополнительные отборы предметов отладки.
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 2, средняя оценка: 5,00 из 5)
Отладка 1С по протоколу TCP-IP/HTTP
Чтобы иметь возможность отлаживать код на встроенном языке, нужно обеспечить работу приложения, в котором исполняется код, в отладочном режиме. Для работы режима отладки необходимо, чтобы на компьютере была включена поддержка используемого сетевого протокола TCP/IP. Отладка по HTTP нужна, когда вы работаете в 1C:EDT, отлаживаете мобильное приложение или когда отладчик(ваш ПК) и предмет отладки(например серверный сеанс) взаимодействуют с сервером отладки по протоколу HTTP:
Для включения отладки TCP/IP, на стороне сервера нужно дополнить параметры запуска службы
- Запускаем редактор реестра, для этого вызываем диалоговое окно «Выполнить» сочетанием клавиш Win+R и выполняем команду regedit
Для включения отладки HTTP, на стороне сервера нужно дополнить параметры запуска службы
- Запускаем редактор реестра, для этого вызываем диалоговое окно «Выполнить» сочетанием клавиш Win+R и выполняем команду regedit
Исправление ошибки Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP
При попытке запустить отладку из конфигуратора возникала ошибка Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP.
Переустановка платформы, чистка кэша, переназначение других портов не помогает.
Перерыл разные форумы, статьи и прочие материалы. Где-то советовали почистить кэш — не помогло, кроме настроек заново рабочего инструмента — Конфигуратора: шаблоны кода, цветовая схема, параметры хранилища и прочие настройки. Где-то советовали настроить или отключить Firewall — тот еще совет, один из тех, где всегда после установки CentOS отключать SELinux (а не пробовали изучить тему и настроить корректно ОС?). Советовали настроить другие порты для отладки, пробовал — не помогло, или также заняты или механизм настройки не работал. Но спасибо за совет, значит кто-то мог занять эти порты.
Попробуем узнать кто все-таки занял порты 1С для отладки. 1С по-умолчанию использует свои стандартные порты 1540-1590.
Запустим netstat.exe -nab -p TCP. Запускать надо под правами Администратора, мало того, чтобы быть администратором, надо повысить себе права как у Администратора. В Windows 10 есть пункт меню при нажатии Win+X — Windows PowerShell (Администратор). Появится вот такой ответ:
В тексте видно, что порты 1С пытается занять стандартный сервис Windows. Причем не всегда это один и тот же. Иногда это svchost.exe иногда spoolsv.exe. Т.е. Windows постоянно при загрузке занимал нужные мне порты. После поиска решения этой проблемы был найдена страница
https://support.microsoft.com/ru-ru/help/929851/the-default-dynamic-port.
В соответствии с рекомендациями организации IANA Майкрософт расширила динамический диапазон клиентских портов для исходящих соединений в Windows Vista и Windows Server 2008. Новый начальный порт по умолчанию — 49152, а новый конечный порт — 65535. Таким образом, конфигурация портов изменилась по сравнению с прежними версиями Windows, в которых по умолчанию использовался диапазон портов с 1025 по 5000.
Просмотреть динамический диапазон портов на компьютере под управлением Windows Vista или Windows Server 2008 можно при помощи следующих команд netsh:
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udpЭтот диапазон можно изменить с помощью команды netsh следующим образом:
netsh int set dynamic start=номер num=диапазон
Эта команда задает динамический диапазон портов для TCP. Заполнитель номер означает начальный порт, а диапазон — общее число портов. Ниже приведены примеры команд:netsh int ipv4 set dynamicport tcp start=10000 num=1000
netsh int ipv4 set dynamicport udp start=10000 num=1000
netsh int ipv6 set dynamicport tcp start=10000 num=1000
netsh int ipv6 set dynamicport udp start=10000 num=1000
Задав новый диапазон динамических портов, работа конфигуратора была восстановлена.