Dbgs exe 1c что это
Отладка по протоколам HTTP и TCP/IP в 1С
Отладку можно проводить при помощи двух различных протоколов: по TCP/IP (вариант по умолчанию) и по HTTP, при этом оба протокола предоставляют достаточно похожие возможности. Собственно, эта статья и посвящена рассмотрению особенностей этих двух протоколов, также в ней рассказывается о том, что такое предмет отладки.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Предмет отладки
Начнем с обсуждения такого понятия, как «предмет отладки». Предмет отладки — это контекст встроенного языка, который характеризуется такими параметрами как:
Типы предметов отладки:
Подключение предметов отладки зависит от выбранного протокола отладки и поэтому будет рассмотрено ниже.
Выбор протокола отладки
Выбрать протокол отладки можно в конфигураторе: Главное меню->Сервис->Параметры->вкладка «Отладка»:
При выборе варианта отладки по протоколу HTTP поля диалога становятся доступными для редактирования. Этот диалог может незначительно отличаться (доступностью полей и значениями по умолчанию) в зависимости от информационной базы.
Группа «Сервер отладки» позволяет указать, каким сервером отладки нужно воспользоваться:
Группа «Имя информационной базы» позволяет указать имя информационной базы, под которым отладчик зарегистрируется на сервере отладки. Если доступ к серверу отладки защищен паролем, то этот пароль можно указать в группе «Доступ».
Протокол отладки TCP/IP
При отладке по протоколу TCP/IP отладчик ищет доступные предметы отладки на текущем или указанном компьютере. Для корректной работы отладчика (если конечно речь идет не о файловой базе на одного пользователя) очень рекомендуется нормально настроить сеть — в частности DNS-сервер и доступность отладочных портов (по-умолчанию 1560:1591).
Подключение предметов отладки
Для выполнения отладки модуля нужно подключить предмет отладки. Подключенные и доступные для подключения предметы отладки, а также настройки отладчика и автоматического подключения можно увидеть в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):
В список доступных предметов отладки попадают только те из них, которые отвечают следующим требованиям:
Кнопка «Настройка…» открывается окно с настройками:
В этом окне можно изменить отладочные порты которые будет сканировать отладчик в поисках подходящих предметов отладки. Кроме этого можно узнать адрес отладчика (строка «Отладчик:»), этот адрес пригодится при различных видах отладки в файловых базах (подробнее об этом в следующей статье).
Некоторые типы предметов отладки остаются доступными для подключения очень непродолжительное время, в этом случае нужно воспользоваться настройками автоматического подключения предметов отладки:
Настройку отладки сервисов (Web, HTTP, OData) в файловой базе следует выполнять в диалоге публикации на веб-сервере (подробнее об этом в следующей статье).
Протокол отладки HTTP
Отладка по протоколу HTTP доступна начиная с версии технологической платформы 8.3.7. При этом для отладки клиент-серверной информационной базы сервер должен быть запущен в режим отладки по протоколу HTTP, о том как это сделать читайте в предыдущей статье серии.
Основное отличие отладки по протоколу HTTP заключается в наличии специального приложения — сервер отладки, который занимается координацией процесса отладки. Отладчик и предметы отладки общаются с сервером отладки по протоколу HTTP, поэтому нужно убедиться, что протокол HTTP не блокируется какими-либо прокси-серверами, брандмауэрами или чем-то другим.
Сервер отладки
Сервер отладки обычно запускается конфигуратором (в файловом варианте) или кластером серверов (если кластер запущен в режиме отладки).
Кроме этого сервер отладки может быть запущен вручную — для реализации нетривиальных сценариев отладки.
Подключение предметов отладки
Как и в случае с отладкой по протоколу TCP/IP, для выполнения отладки по HTTP требуется, что бы предмет отладки был подключен. Управления предметами отладки все также происходит в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):
В список доступных предметов отладки попадают все предметы отладки зарегистрированные на используемом сервере отладки для информационной базы, имя которой указывается в настройках (см. «Выбор протокола отладки»).
Из списка доступных предметов отладки исключаются уже подключенные и не соответствующие отбору предметы отладки. Отбор можно установить в правой верхней части окна:
В окне настроек отладчика можно узнать адрес сервера отладки и имя информационной базы:
Для настройки автоматического подключения предметов отладки существует специальный диалог:
В левой части диалога можно указать типы предметов отладки, которые подлежат автоматическому подключению, а в правой — дополнительные отборы предметов отладки.
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Отладка по протоколу HTTP
При отладке прикладных решений в качестве транспортного протокола используется HTTP. Он позволяет «достучаться» до предметов отладки, которые не находятся на вашем компьютере или в вашей локальной сети.
Для запуска отлаживаемого прикладного решения необходима информационная база, однако сам отладчик не нуждается в соединении с ней для получения отлаживаемой конфигурации. Он может получить конфигурацию из любого другого источника, например из XML-файлов, расположенных в каталоге.
Архитектура процесса отладки
Архитектура отладки выглядит следующим образом:
Прямой передачи информации между отладчиком и предметами отладки нет. Все взаимодействие организуется через сервер отладки. Это основной элемент механизма. На сервере отладки организована очередь сообщений, через которую отладчик и предметы отладки передают информацию друг другу.
И сам отладчик, и предметы отладки взаимодействуют с сервером отладки по протоколу HTTP. Таким образом, неважно, где эти предметы отладки расположены.
Взаимодействие с сервером отладки выполняется по инициативе отладчика и предметов отладки. Для этого организуются дополнительные соединения. Их основное назначение — узнать, не появилась ли для них информация на сервере отладки. И если появилась, то получить эту информацию.
Таким образом, взаимодействие получается одностороннее. Информация все время передается с сервера отладки в отладчик и в предметы отладки.
Сервер отладки
В параметре ownerPID у него указан идентификатор того приложения, которому принадлежит этот сервер отладки. В данном случае это конфигуратор «1С:Предприятия 8».
При работе в клиент-серверном варианте в параметре ownerPID у него будет указан идентификатор менеджера кластера «1С:Предприятия 8».
Основные функции сервера отладки заключаются в следующем:
он хранит списки предметов отладки, доступных для использования, и списки подключенных предметов отладки;
Подключение предметов отладки
При запуске отладочных сеансов приложения выполняют автоматическое подключение предметов отладки (как клиентского, так и серверного) к серверу отладки.
Наряду с этим вы можете настроить автоматическое подключение предметов отладки независимо от того, каким образом они были запущены. Для автоматического подключения предметов отладки вы можете создавать отборы. В них кроме самих предметов отладки вы можете указать конкретных пользователей, чьи сеансы вас интересуют, а также, если используется разделение данных, указать область информационной базы, которая будет отлаживаться.
Заметки из Зазеркалья
Реализовано в версии 8.3.7.1759.
Мы значительно переработали механизм отладки. Для этого было несколько причин. Во-первых, мы хотели предоставить вам возможность отлаживать все имеющиеся на сегодняшний момент приложения. Во-вторых, прежняя архитектура отладчика требовала изменений для того, чтобы соответствовать текущим тенденциям, и иметь возможность будущего развития. В-третьих, был необходим универсальный интерфейс отладки, с которым мог бы работать не только конфигуратор 1С:Предприятия, но и Development Tools.
Основные преимущества
Чтобы вы могли представить себе объём выполненных нами изменений, коротко перечислим основные преимущества нового механизма.
Отладка по протоколу HTTP
Прежний механизм отладки был основан на том, что отладчик, реализованный в конфигураторе 1С:Предприятия, напрямую взаимодействовал с предметами отладки (клиентскими и серверными приложениями). Это взаимодействие осуществлялось по протоколу TCP/IP.
Однако с выходом приложений 1С:Предприятия в Интернет, а особенно с появлением мобильных приложений, такой подход стал источником ограничений и неудобств. Далеко не всегда протокол TCP/IP позволяет отладчику «достучаться» до предметов отладки. Ведь они могут находиться вне локальной сети, в которой работает отладчик.
Поэтому в новом механизме в качестве транспортного протокола мы выбрали более «вездеходный» протокол HTTP, который, кстати, используют и клиентские приложения для подключения к информационным базам.
Современная архитектура отладки
Особенностью прежнего механизма отладки была необходимость подключения к информационной базе с помощью конфигуратора. В результате разработчик, выполняющий отладку, имел полный доступ ко всем административным функциям.
Новый механизм отладки перестал нуждаться в соединении с отлаживаемой информационной базой. Главное, что требуется теперь отладчику, это такая же конфигурация, которая работает у клиентов. Для её получения нет необходимости подключаться к отлаживаемой информационной базе. Вы можете загрузить её, например, из файла.
Отладка мобильных приложений
Благодаря использованию протокола HTTP, стала возможной отладка приложений, исполняемых мобильной платформой. Причём вы можете отлаживать любые контексты: клиентский, серверный, а также фоновые задания.
Изменение переменных, свойств объектов и асинхронные вычисления выражений
Теперь в процессе отладки вы можете изменять значения любых переменных, которые доступны для записи. Для быстрого просмотра и изменения локальных переменных мы реализовали отдельное окно. А само вычисление выражений, отображаемых отладчиком, теперь выполняется в асинхронном режиме.
Отладка в Development Tools
При создании нового механизма отладки мы реализовали новый, универсальный программный интерфейс взаимодействия с ним. Этот интерфейс использует конфигуратор 1С:Предприятия, и этот же интерфейс использует теперь и новая среда разработки 1C:Enterprise Development Tools. Таким образом, все возможности отладки доступны теперь и при работе в Development Tools.
Архитектура процесса отладки
Новая архитектура отладки выглядит следующим образом:
Прямой передачи информации между отладчиком и предметами отладки нет. Всё взаимодействие организуется через сервер отладки. Это основной элемент механизма. На сервере отладки организована очередь сообщений, через которую отладчик и предметы отладки передают информацию друг другу.
И сам отладчик, и предметы отладки взаимодействуют с сервером отладки по протоколу HTTP. Таким образом теперь неважно, где эти предметы отладки расположены.
Таким образом, взаимодействие получается одностороннее. Информация всё время передаётся с сервера отладки в отладчик, и в предметы отладки.
Идентификация информационных баз
В прежнем механизме для идентификации информационных баз использовалась строка соединения. Такое решение в некоторых случаях вызывало трудности с сопоставлением предметов отладки и конфигуратора. Потому что, во-первых, оно было регистрозависимым, а во-вторых, при отладке некоторых контекстов платформа формировала строку соединения автоматически. И она не всегда совпадала с той, которую вы указывали при подключении информационной базы в конфигураторе. Поиск и исправление таких ситуаций усложняли процесс отладки.
В новом механизме мы избавились от строки соединения. Теперь мы используем идентификатор информационной базы. В файловой информационной базе такой идентификатор генерируется при первом подключении клиентского соединения. В серверной информационной базе в качестве такого идентификатора используется идентификатор регистрации информационной базы в кластере.
Приятным дополнительным моментом здесь является то, что мы пока сохранили в платформе старый механизм отладки (в дальнейшем он может быть исключён). И вы можете пользоваться им при желании, или при необходимости. Так вот старый механизм мы доработали, и теперь он тоже использует идентификатор информационной базы, а не строку соединения.
Типичные сценарии отладки
С точки зрения прикладного разработчика типичные сценарии отладки не изменились. Единственным значительным отличием является то, что новый механизм отладки нужно включить. Потому что по-умолчанию он выключен.
Несмотря на это имеет смысл познакомиться с тем, что происходит теперь при запуске отладки. Потому что это может быть полезно вам в каких-то нестандартных сценариях работы.
Файловый вариант
При этом конфигуратор автоматически предложит вам использовать локальный сервер отладки. С этим нужно согласиться и перезапустить конфигуратор.
Установленный вами способ отладки сохраняется между сеансами конфигуратора, но хранится он в разрезе информационных баз. Поэтому для другой информационной базы вам снова нужно будет его включить.
Теперь при старте конфигуратора, или при его перезапуске, платформа автоматически будет запускать ещё и сервер отладки. Это отдельное приложение dbgs.exe. Вы можете увидеть его в диспетчере задач.
В параметре ownerPID у него указан идентификатор того приложения, которому принадлежит этот сервер отладки. В данном случае это конфигуратор 1С:Предприятия.
Теперь, если из конфигуратора вы запустите отладочный сеанс 1С:Предприятия, он автоматически подключится к серверу отладки, и в конфигураторе вы увидите подключенные предметы отладки.
Если сеанс 1С:Предприятия был запущен без отладки, то, как и раньше, вы можете подключить его к отладчику. Только теперь нужно указывать адрес сервера отладки:
Этот адрес вы можете узнать из настроек предметов отладки:
Есть один непривычный момент, связанный с работой сразу с несколькими файловыми базами. В файловом варианте каждый конфигуратор с включенной отладкой http запускает свою копию сервера отладки на разных портах:
Поэтому если у вас открыты сразу несколько конфигураторов, то для подключения клиентского приложения к отладчику вам нужно выбрать из них правильный.
Клиент-серверный вариант
Прежде чем начать отладку в клиент-серверном варианте, вам нужно, как и раньше, запустить сервер 1С:Предприятия в режиме отладки, но указать, что для отладки будет использоваться новый механизм HTTP. Например, так:
При таком запуске сервера будет запущен и сервер отладки.
В параметре ownerPID у него будет указан идентификатор менеджера кластера 1С:Предприятия.
При этом конфигуратор автоматически предложит вам использовать уже сервер отладки кластера, а не локальный сервер. С этим нужно согласиться и перезапустить конфигуратор.
Дальше всё выглядит точно так же, как и в файловом варианте, за исключением того, что при старте конфигуратора серверной базы с включенной отладкой http локальный сервер отладки запускаться уже не будет.
Подключение предметов отладки
При запуске отладочных сеансов из конфигуратора, приложения выполняют автоматическое подключение предметов отладки (как клиентского, так и серверного) к серверу отладки.
При этом, как и раньше, у вас есть возможность настроить в конфигураторе автоматическое подключение предметов отладки независимо от того, каким образом они были запущены. Теперь эти возможности стали гораздо богаче.
Во-первых, теперь платформа предлагает вам для выбора все возможные предметы отладки.
А во-вторых, появился ещё один, более тонкий способ настройки. Это использование заранее созданных отборов.
Такие отборы вы можете использовать как при подключении предметов отладки, так и для просмотра доступных предметов отладки.
В отборе, кроме самих предметов отладки, вы можете указать конкретных пользователей, чьи сеансы вас интересуют, а также, если используется разделение данных, указать область информационной базы, которая будет отлаживаться.
Изменение переменных, свойств объектов и асинхронные вычисления выражений
Новый механизм отладки позволяет вам изменять значения переменных в процессе отладки. В прежнем механизме такая возможность отсутствовала.
Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, мы реализовали окно «Локальные переменные».
Внешне оно очень похоже на привычное вам «Табло». Но, во-первых, это окно уже автоматически заполнено всеми локальными переменными, а во-вторых, значения переменных вы можете теперь менять.
Значения примитивных типов вы можете изменить прямо в ячейке «Значение»:
А для изменения других значений вы можете воспользоваться окном ввода выражений:
Приятным бонусом является то, что в этом окне полностью функционирует контекстная подсказка.
Точно таким же образом вы можете изменять и значения любых (не только локальных) переменных, свойств, доступных для записи. В окне вычисления выражений (которое вызывается командой Shift+F9) вы можете менять значения переменных как в ячейке «Значение», так и с помощью отдельного диалога.
Кстати, само вычисление выражений теперь выполняется асинхронно. Это означает, что конфигуратор заказывает вычисление предмета отладки. И некоторое время это вычисление ожидается на сервере. Если вычисление выполнено, то результаты сразу поступают в конфигуратор. Если вычисление выполняется продолжительное время, то результаты этих вычислений асинхронно приходят в конфигуратор позже. Такой подход позволяет вам не ожидать длительных вычислений в конфигураторе, и продолжить свою работу.
Создание отдельного кластера для отладки.
Ключи прописывал максимально в начале начале строки запуска и в конце и другие вариации.
В консоли сервера подключение и конфигуратора и клиента показывает на правильном кластере, к которому подключаюсь 1641.
При варианте http входит в отладку, только в варианте «Использовать локальный сервер отладки» dbgs.exe запускается и принадлежит клиентской части 1С:Предприятие.
Если указать «Использовать сервер отладки кластера», то выдается ошибка: «Не удалось соединиться с сервером отладки по причине: Не указан сервер отладки».
Где его указать?
У кого-то в таком варианте работает или только 1541 можно отладку на сервере запустить, а всех пользователей отправить на кластер 1641 (не пробовал так, но подозреваю что сервер кластера ищется именно в службе, которая на 1541).
(6) У меня в (0) ссылка как это сделать и в (0) я описал что это я сделал.
(12) В отладку в серверные процедуры и функции не проваливается. По клиентским всё хорошо.
(13) В моем случае это отдельная служба и отдельный кластер, который виден в консоли серверов 1С.
4.2.1.2.1. Как сервис
В «1С:Предприятии» отсутствуют штатные средства регистрации нескольких экземпляров сервиса сервера «1С:Предприятия» одной версии. Для того чтобы выполнить такую регистрацию, следует воспользоваться утилитой sc. При выполнении такой регистрации, должны различаться имена служб, номера сетевых портов и адреса каталогов кластера.
В качестве примера рассмотрим командный файл, выполняющий регистрацию службы сервера. Файл register-service.bat:
echo off
set SrvcName=»1C:Enterprise 8.3 Server Agent %CtrlPort% %1″
set BinPath=»\»C:\Program Files\1cv8\%1\bin\ragent.exe\»
sc create %SrvcName% binPath= %BinPath% start=auto obj=
Перед применением данного командного файла необходимо указать в нем данные реального пользователя (имя и пароль) от имени которого будет работать служба кластера серверов (строки set SrvUserName= и set SrvUserPwd=). Данный командный файл выполняет регистрацию указанной версии сервера «1С:Предприятия». Имя службы является строкой, содержащей следующую информацию:
● 1C:Enterprise 8.3 Server Agent,
● Номер сетевого порта главного менеджера кластера,
● Полный номер версии «1С:Предприятия».
При регистрации сервера версии 8.3.3.100, использующего сетевой порт главного менеджера кластера с номером 2540, имя службы будет выглядеть следующим образом: 1C:Enterprise 8.3 Server Agent 2540 8.3.3.100.
register-service 8.3.3.100 25 «c:\cluster_data\cluster 1»
register-service 8.3.3.100 35 «c:\cluster_data\cluster 2»
В данном примере первая строка выполняет регистрацию службы сервера со следующими параметрами:
● Имя службы: 1C:Enterprise 8.3 Server Agent 2540 8.3.3.100;
● Описание службы: Агент сервера 1С:Предприятия 8.3. Параметры: 8.3.3.100, 2540, 2541, 2560:2591.
Вторая строка выполняет регистрацию службы сервера со следующими параметрами:
● Имя службы: 1C:Enterprise 8.3 Server Agent 3540 8.3.3.100;
● Описание службы: Агент сервера 1С:Предприятия 8.3. Параметры: 8.3.3.100, 3540, 3541, 3560:3591.
Если необходимо отменить регистрацию службы сервера, то можно воспользоваться следующим примером командного файла.
Файл unregister-service.bat:
unregister-service 8.3.3.100 25
Командный файл останавливает службу и удаляет ее регистрацию. Имя службы формируется по тем же правилам, что и при регистрации новой (нестандартной) службы сервера «1С:Предприятия».
Почему может не работать режим «Использовать сервер отладки кластера»?
В конце собственно вывод:
.
Но рано или поздно споры вокруг полезности нового механизма отладки прекратятся, так как разработчики платформы 1С отключат старую возможность отладки по TCP, и останется только отладка по протоколу http. Поэтому всем нам нужно готовиться и привыкать к использованию нового механизма, чтобы эффективность нашей работы в один прекрасный момент не упала до нуля.
1С отладка по протоколу http
Отладку можно проводить при помощи двух различных протоколов: по TCP/IP (вариант по умолчанию) и по HTTP, при этом оба протокола предоставляют достаточно похожие возможности. Собственно, эта статья и посвящена рассмотрению особенностей этих двух протоколов, также в ней рассказывается о том, что такое предмет отладки.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Предмет отладки
Начнем с обсуждения такого понятия, как «предмет отладки». Предмет отладки — это контекст встроенного языка, который характеризуется такими параметрами как:
Типы предметов отладки:
Подключение предметов отладки зависит от выбранного протокола отладки и поэтому будет рассмотрено ниже.
Выбор протокола отладки
Выбрать протокол отладки можно в конфигураторе: Главное меню->Сервис->Параметры->вкладка «Отладка»:
Выбор протокола отладки
При выборе варианта отладки по протоколу HTTP поля диалога становятся доступными для редактирования. Этот диалог может незначительно отличаться (доступностью полей и значениями по умолчанию) в зависимости от информационной базы.
Группа «Сервер отладки» позволяет указать, каким сервером отладки нужно воспользоваться:
Группа «Имя информационной базы» позволяет указать имя информационной базы, под которым отладчик зарегистрируется на сервере отладки. Если доступ к серверу отладки защищен паролем, то этот пароль можно указать в группе «Доступ».
Протокол отладки TCP/IP
При отладке по протоколу TCP/IP отладчик ищет доступные предметы отладки на текущем или указанном компьютере. Для корректной работы отладчика (если конечно речь идет не о файловой базе на одного пользователя) очень рекомендуется нормально настроить сеть — в частности DNS-сервер и доступность отладочных портов (по-умолчанию 1560:1591).
Подключение предметов отладки
Для выполнения отладки модуля нужно подключить предмет отладки. Подключенные и доступные для подключения предметы отладки, а также настройки отладчика и автоматического подключения можно увидеть в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):
Диалог «Предметы отладки»
В список доступных предметов отладки попадают только те из них, которые отвечают следующим требованиям:
«Параметры»)» w /> Настройки клиентского приложения («Сервис»->»Параметры»)
Кнопка «Настройка…» открывается окно с настройками:
Настройки отладчика
В этом окне можно изменить отладочные порты которые будет сканировать отладчик в поисках подходящих предметов отладки. Кроме этого можно узнать адрес отладчика (строка «Отладчик:»), этот адрес пригодится при различных видах отладки в файловых базах (подробнее об этом в следующей статье).
Некоторые типы предметов отладки остаются доступными для подключения очень непродолжительное время, в этом случае нужно воспользоваться настройками автоматического подключения предметов отладки:
Настройки автоматического подключения
Настройку отладки сервисов (Web, HTTP, OData) в файловой базе следует выполнять в диалоге публикации на веб-сервере (подробнее об этом в следующей статье).
Протокол отладки HTTP
Отладка по протоколу HTTP доступна начиная с версии технологической платформы 8.3.7. При этом для отладки клиент-серверной информационной базы сервер должен быть запущен в режим отладки по протоколу HTTP, о том как это сделать читайте в предыдущей статье серии.
Основное отличие отладки по протоколу HTTP заключается в наличии специального приложения — сервер отладки, который занимается координацией процесса отладки. Отладчик и предметы отладки общаются с сервером отладки по протоколу HTTP, поэтому нужно убедиться, что протокол HTTP не блокируется какими-либо прокси-серверами, брандмауэрами или чем-то другим.
Сервер отладки
Сервер отладки обычно запускается конфигуратором (в файловом варианте) или кластером серверов (если кластер запущен в режиме отладки).
Кроме этого сервер отладки может быть запущен вручную — для реализации нетривиальных сценариев отладки.
Сервер отладки (dbgs) находится в каталоге bin, параметр —help покажет информацию об имеющихся параметрах запуска (там все довольно понятно), пример запуска:
Сервер отладки готов к работе
Подключение предметов отладки
Как и в случае с отладкой по протоколу TCP/IP, для выполнения отладки по HTTP требуется, что бы предмет отладки был подключен. Управления предметами отладки все также происходит в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):
Подключение предметов отладки
В список доступных предметов отладки попадают все предметы отладки зарегистрированные на используемом сервере отладки для информационной базы, имя которой указывается в настройках (см. «Выбор протокола отладки»).
Из списка доступных предметов отладки исключаются уже подключенные и не соответствующие отбору предметы отладки. Отбор можно установить в правой верхней части окна:
Отбор предметов отладки
В окне настроек отладчика можно узнать адрес сервера отладки и имя информационной базы:
Настройки отладчика (HTTP)
Для настройки автоматического подключения предметов отладки существует специальный диалог:
Настройка автоматического подключения предметов отладки (HTTP)
В левой части диалога можно указать типы предметов отладки, которые подлежат автоматическому подключению, а в правой — дополнительные отборы предметов отладки.
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Реализовано в версии 8.3.7.1759.
Мы значительно переработали механизм отладки. Для этого было несколько причин. Во-первых, мы хотели предоставить вам возможность отлаживать все имеющиеся на сегодняшний момент приложения. Во-вторых, прежняя архитектура отладчика требовала изменений для того, чтобы соответствовать текущим тенденциям, и иметь возможность будущего развития. В-третьих, был необходим универсальный интерфейс отладки, с которым мог бы работать не только конфигуратор 1С:Предприятия, но и Development Tools.
Основные преимущества
Чтобы вы могли представить себе объём выполненных нами изменений, коротко перечислим основные преимущества нового механизма.
Отладка по протоколу HTTP
Прежний механизм отладки был основан на том, что отладчик, реализованный в конфигураторе 1С:Предприятия, напрямую взаимодействовал с предметами отладки (клиентскими и серверными приложениями). Это взаимодействие осуществлялось по протоколу TCP/IP.
Однако с выходом приложений 1С:Предприятия в Интернет, а особенно с появлением мобильных приложений, такой подход стал источником ограничений и неудобств. Далеко не всегда протокол TCP/IP позволяет отладчику «достучаться» до предметов отладки. Ведь они могут находиться вне локальной сети, в которой работает отладчик.
Поэтому в новом механизме в качестве транспортного протокола мы выбрали более «вездеходный» протокол HTTP, который, кстати, используют и клиентские приложения для подключения к информационным базам.
Современная архитектура отладки
Особенностью прежнего механизма отладки была необходимость подключения к информационной базе с помощью конфигуратора. В результате разработчик, выполняющий отладку, имел полный доступ ко всем административным функциям.
Новый механизм отладки перестал нуждаться в соединении с отлаживаемой информационной базой. Главное, что требуется теперь отладчику, это такая же конфигурация, которая работает у клиентов. Для её получения нет необходимости подключаться к отлаживаемой информационной базе. Вы можете загрузить её, например, из файла.
Отладка мобильных приложений
Благодаря использованию протокола HTTP, стала возможной отладка приложений, исполняемых мобильной платформой. Причём вы можете отлаживать любые контексты: клиентский, серверный, а также фоновые задания.
Изменение переменных, свойств объектов и асинхронные вычисления выражений
Теперь в процессе отладки вы можете изменять значения любых переменных, которые доступны для записи. Для быстрого просмотра и изменения локальных переменных мы реализовали отдельное окно. А само вычисление выражений, отображаемых отладчиком, теперь выполняется в асинхронном режиме.
Отладка в Development Tools
При создании нового механизма отладки мы реализовали новый, универсальный программный интерфейс взаимодействия с ним. Этот интерфейс использует конфигуратор 1С:Предприятия, и этот же интерфейс использует теперь и новая среда разработки 1C:Enterprise Development Tools. Таким образом, все возможности отладки доступны теперь и при работе в Development Tools.
Архитектура процесса отладки
Новая архитектура отладки выглядит следующим образом:
В отладке участвуют отладчик, предметы отладки и новый элемент — сервер отладки.
Прямой передачи информации между отладчиком и предметами отладки нет. Всё взаимодействие организуется через сервер отладки. Это основной элемент механизма. На сервере отладки организована очередь сообщений, через которую отладчик и предметы отладки передают информацию друг другу.
И сам отладчик, и предметы отладки взаимодействуют с сервером отладки по протоколу HTTP. Таким образом теперь неважно, где эти предметы отладки расположены.
Взаимодействие с сервером отладки выполняется по инициативе отладчика и предметов отладки. Для этого организуются дополнительные соединения. Их основное назначение — узнать, не появилась ли для них информация на сервере отладки. И если появилась, получить эту информацию.
Таким образом, взаимодействие получается одностороннее. Информация всё время передаётся с сервера отладки в отладчик, и в предметы отладки.
Идентификация информационных баз
В прежнем механизме для идентификации информационных баз использовалась строка соединения. Такое решение в некоторых случаях вызывало трудности с сопоставлением предметов отладки и конфигуратора. Потому что, во-первых, оно было регистрозависимым, а во-вторых, при отладке некоторых контекстов платформа формировала строку соединения автоматически. И она не всегда совпадала с той, которую вы указывали при подключении информационной базы в конфигураторе. Поиск и исправление таких ситуаций усложняли процесс отладки.
В новом механизме мы избавились от строки соединения. Теперь мы используем идентификатор информационной базы. В файловой информационной базе такой идентификатор генерируется при первом подключении клиентского соединения. В серверной информационной базе в качестве такого идентификатора используется идентификатор регистрации информационной базы в кластере.
Приятным дополнительным моментом здесь является то, что мы пока сохранили в платформе старый механизм отладки (в дальнейшем он может быть исключён). И вы можете пользоваться им при желании, или при необходимости. Так вот старый механизм мы доработали, и теперь он тоже использует идентификатор информационной базы, а не строку соединения.
Типичные сценарии отладки
С точки зрения прикладного разработчика типичные сценарии отладки не изменились. Единственным значительным отличием является то, что новый механизм отладки нужно включить. Потому что по-умолчанию он выключен.
Несмотря на это имеет смысл познакомиться с тем, что происходит теперь при запуске отладки. Потому что это может быть полезно вам в каких-то нестандартных сценариях работы.
Файловый вариант
Прежде чем начать отладку в файловом варианте, в настройках конфигуратора нужно указать, что вы хотите использовать новый механизм отладки — «Отладка по протоколу HTTP».
При этом конфигуратор автоматически предложит вам использовать локальный сервер отладки. С этим нужно согласиться и перезапустить конфигуратор.
Установленный вами способ отладки сохраняется между сеансами конфигуратора, но хранится он в разрезе информационных баз. Поэтому для другой информационной базы вам снова нужно будет его включить.
Теперь при старте конфигуратора, или при его перезапуске, платформа автоматически будет запускать ещё и сервер отладки. Это отдельное приложение dbgs.exe. Вы можете увидеть его в диспетчере задач.
В параметре ownerPID у него указан идентификатор того приложения, которому принадлежит этот сервер отладки. В данном случае это конфигуратор 1С:Предприятия.
Теперь, если из конфигуратора вы запустите отладочный сеанс 1С:Предприятия, он автоматически подключится к серверу отладки, и в конфигураторе вы увидите подключенные предметы отладки.
Если сеанс 1С:Предприятия был запущен без отладки, то, как и раньше, вы можете подключить его к отладчику. Только теперь нужно указывать адрес сервера отладки:
Этот адрес вы можете узнать из настроек предметов отладки:
Есть один непривычный момент, связанный с работой сразу с несколькими файловыми базами. В файловом варианте каждый конфигуратор с включенной отладкой http запускает свою копию сервера отладки на разных портах:
Поэтому если у вас открыты сразу несколько конфигураторов, то для подключения клиентского приложения к отладчику вам нужно выбрать из них правильный.
Клиент-серверный вариант
Прежде чем начать отладку в клиент-серверном варианте, вам нужно, как и раньше, запустить сервер 1С:Предприятия в режиме отладки, но указать, что для отладки будет использоваться новый механизм HTTP. Например, так:
При таком запуске сервера будет запущен и сервер отладки.
В параметре ownerPID у него будет указан идентификатор менеджера кластера 1С:Предприятия.
Теперь в настройках конфигуратора, как и в случае файловой базы, вам нужно указать, что вы хотите использовать новый механизм отладки — «Отладка по протоколу HTTP».
При этом конфигуратор автоматически предложит вам использовать уже сервер отладки кластера, а не локальный сервер. С этим нужно согласиться и перезапустить конфигуратор.
Дальше всё выглядит точно так же, как и в файловом варианте, за исключением того, что при старте конфигуратора серверной базы с включенной отладкой http локальный сервер отладки запускаться уже не будет.
Подключение предметов отладки
При запуске отладочных сеансов из конфигуратора, приложения выполняют автоматическое подключение предметов отладки (как клиентского, так и серверного) к серверу отладки.
При этом, как и раньше, у вас есть возможность настроить в конфигураторе автоматическое подключение предметов отладки независимо от того, каким образом они были запущены. Теперь эти возможности стали гораздо богаче.
Во-первых, теперь платформа предлагает вам для выбора все возможные предметы отладки.
А во-вторых, появился ещё один, более тонкий способ настройки. Это использование заранее созданных отборов.
Такие отборы вы можете использовать как при подключении предметов отладки, так и для просмотра доступных предметов отладки.
В отборе, кроме самих предметов отладки, вы можете указать конкретных пользователей, чьи сеансы вас интересуют, а также, если используется разделение данных, указать область информационной базы, которая будет отлаживаться.
Изменение переменных, свойств объектов и асинхронные вычисления выражений
Новый механизм отладки позволяет вам изменять значения переменных в процессе отладки. В прежнем механизме такая возможность отсутствовала.
Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, мы реализовали окно «Локальные переменные».
Внешне оно очень похоже на привычное вам «Табло». Но, во-первых, это окно уже автоматически заполнено всеми локальными переменными, а во-вторых, значения переменных вы можете теперь менять.
Значения примитивных типов вы можете изменить прямо в ячейке «Значение»:
А для изменения других значений вы можете воспользоваться окном ввода выражений:
Приятным бонусом является то, что в этом окне полностью функционирует контекстная подсказка.
Точно таким же образом вы можете изменять и значения любых (не только локальных) переменных, свойств, доступных для записи. В окне вычисления выражений (которое вызывается командой Shift+F9) вы можете менять значения переменных как в ячейке «Значение», так и с помощью отдельного диалога.
Кстати, само вычисление выражений теперь выполняется асинхронно. Это означает, что конфигуратор заказывает вычисление предмета отладки. И некоторое время это вычисление ожидается на сервере. Если вычисление выполнено, то результаты сразу поступают в конфигуратор. Если вычисление выполняется продолжительное время, то результаты этих вычислений асинхронно приходят в конфигуратор позже. Такой подход позволяет вам не ожидать длительных вычислений в конфигураторе, и продолжить свою работу.
Автор: Admin Сентябрь 2, 2019 0 комментария
Ни один разработчик 1с не может выполнять серьезные задачи или находить ошибки в коде без отладки. Так что же делать если не работает механизм отладки? Все очень просто!
Для начала смотрим какой режим отладки у нас включен в параметрах конфигурации “Сервис/Параметры/Закладка ‘Отладка’ “:
В большинстве случаев достаточно отладки по сетевому протоколу TCP/IP – ‘Отладка по протоколу TCP/IP’. Двумя словами: конфигуратор напрямую взаимодействует с предметами отладки (клиентские приложения, фоновые задания и т.д.).
Отладка по протоколу HTTP – это относительно новый механизм отладки (начиная с версии 8.3.7.1759). Основное отличие от предыдущего механизма отладки в том, что вся отладки происходит через ‘Сервер Отладки’:
Что бы подключиться к отлаживаемому приложению, не обязательно нужно занимать конфигуратор – достаточно иметь копию конфигурации отслеживаемого приложения. Более подробно с новым механизмом отладки можно ознакомиться по ссылке.
Итак, зная какой механизм отладки у нас подключен идем на сервер 1с и открываем редактор реестра windows:
Далее по ветке “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices” и находим там каталог с агентом сервера 1с: “1C:Enterprise 8.3 Server Agent (x86-64)”:
И в параметре ‘ImagePath’ добавляем свойство: -debug:
После изменений в реестре, необходимо перезагрузить сервер 1с – и наслаждаться отладкой!