Ошибка соединения с сервером отладки. Отладка серверных процедур (1Cv82). Использование нового протокола

8 назрела необходимость (о чём ниже) в значительной переработке процедуры отладки. Это отразилось в версии 8.3.7.1759. Во-первых, был создан для этой процедуры универсальный интерфейс, а во-вторых, таким изменением обеспечивается дальнейшее развитие самой программы. Ведь теперь с отладкой можно работать не только через Конфигуратор, но и с помощью Development Tools. Рассмотрим, как включить отладку на сервере 1С начиная с новой версии.

Использование нового протокола

Предыдущий отладчик, который был реализован в предыдущих версиях,осуществлял управление клиентскими и серверными приложениями с помощью протокола TCP/IP.

В настоящее время использование такого протокола стало ограничивать выход программы 1С:Предприятие в интернет и порождало неудобства для работы мобильных приложений.

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

Новая архитектура

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

В новой версии в прямом соединении с базами нет необходимости - достаточно просто обладать такой же базой, как у клиента. А загрузить её можно из файла.

Мобильные приложения

По протоколу HTTP теперь имеется возможность отлаживать и серверные данные, и клиентские, и приложения.

Другие изменения

С новой версией в отладочной процедуре доступно изменение значений для локальных переменных, - для этой цели реализовано новое окно быстрого просмотра.

Режим вычислений изменён на асинхронный, позволяющий продолжать работу не дожидаясь результатов.

Отладчик в Development Tools

Взаимодействие с новой процедурой выполнено в специально разработанном универсальном программном интерфейсе. С одной стороны, этот интерфейс используется Конфигуратором. С другой стороны - он внедрён в новую среду 1C:Enterprise Development Tools.

Как это выглядит теперь

После изменения программы процедура происходит по следующему сценарию:

Теперь в ней участвуют не только отладчик и предметы, как это было ранее. Теперь в цепочку введён дополнительный элемент - Server.

Мало того, что он добавлен - он служит основным элементом обмена информацией между отладчиком и предметами. А сам обмен происходит посредством выстраиваемых в очередь сообщений.

А поскольку обмен этот проводится через протокол HTTP, то теперь не имеет значения, где именно могут быть расположены данные.

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

Включение отладки при разных сценариях

Для прикладного разработчика не произошло никаких изменений. Значительное отличие состоит в том, что новый механизм требуется включать. Ведь по умолчанию он теперь отключён.

Рассмотрим, что же происходит при запуске режима если мы выбираем один из двух сценариев.

Файловый сценарий

В начале файлового варианта необходимо в конфигураторных настройках указать использование нового механизма - «Отладка по протоколу HTTP».

Тогда со стороны Конфигуратора будет автоматически предложено использовать локальный сервер. Это условие нужно принять и заново запустить программу в режиме Конфигуратора.

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

Включённый механизм теперь автоматически будет запускать Сервер отладчика, который представляет собой специальное приложение dbgs.exe. Отражается оно в окне Диспетчера задач.

Значение параметра ownerPID будет соответствовать идентификатору приложения, которое привязано к нему.

При запуске отладочного сеанса через Конфигуратор - серверное подключение произойдёт автоматически. А в нём отразятся подключённые предметы.

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

Заходим в Сервис — Параметры

Он находится в настройках предметов:

Заходим Подключение — Настройка

При использовании файлового сценария с несколькими базами одновременно нужно учесть важный нюанс, - каждый из Конфигураторов (с включённым механизмом по HTTP) отправляет свой Сервер:

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

Клиент-серверный сценарий

Отладка на сервере 1С по клиент-серверному сценарию, как и в предыдущем случае, начинается запуском режима. Здесь указывается использование нового механизма HTTP. Делается это таким образом:

ragent.exe -debug -http

При его запуске автоматически стартует за ним и отладчик.

Значение параметра ownerPID будет соответствовать идентификационному номеру менеджера кластера 1С.

Программой будет сформировано предложение использовать теперь отладочный сервер кластера (а не локальный как в предыдущем сценарии). Соглашаемся и перезапускаем его.

В дальнейшем всё будет проходить подобно файловому сценарию. Только при запуске Конфигуратора серверной базы локальный сервер-отладчик уже не будет запускаться.

Надеемся, что наша публикация помогла вам разобраться с проблемой, как включить отладку на сервере 1С.

Реализовано в версии 8.3.7.1759.

Мы значительно переработали механизм отладки. Для этого было несколько причин. Во-первых, мы хотели предоставить вам возможность отлаживать все имеющиеся на сегодняшний момент приложения. Во-вторых, прежняя архитектура отладчика требовала изменений для того, чтобы соответствовать текущим тенденциям, и иметь возможность будущего развития. В-третьих, был необходим универсальный интерфейс отладки, с которым мог бы работать не только конфигуратор 1С:Предприятия, но и .

Основные преимущества

Чтобы вы могли представить себе объём выполненных нами изменений, коротко перечислим основные преимущества нового механизма.

Отладка по протоколу HTTP

Прежний механизм отладки был основан на том, что отладчик, реализованный в конфигураторе 1С:Предприятия, напрямую взаимодействовал с предметами отладки (клиентскими и серверными приложениями). Это взаимодействие осуществлялось по протоколу TCP/IP.

Однако с выходом приложений 1С:Предприятия в Интернет, а особенно с появлением мобильных приложений, такой подход стал источником ограничений и неудобств. Далеко не всегда протокол TCP/IP позволяет отладчику «достучаться» до предметов отладки. Ведь они могут находиться вне локальной сети, в которой работает отладчик.

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

Современная архитектура отладки

Особенностью прежнего механизма отладки была необходимость подключения к информационной базе с помощью конфигуратора. В результате разработчик, выполняющий отладку, имел полный доступ ко всем административным функциям.

Новый механизм отладки перестал нуждаться в соединении с отлаживаемой информационной базой. Главное, что требуется теперь отладчику, это такая же конфигурация, которая работает у клиентов. Для её получения нет необходимости подключаться к отлаживаемой информационной базе. Вы можете загрузить её, например, из файла.

Отладка мобильных приложений

Благодаря использованию протокола HTTP, стала возможной отладка приложений, исполняемых мобильной платформой. Причём вы можете отлаживать любые контексты: клиентский, серверный, а также фоновые задания.

Теперь в процессе отладки вы можете изменять значения любых переменных, которые доступны для записи. Для быстрого просмотра и изменения локальных переменных мы реализовали отдельное окно. А само вычисление выражений, отображаемых отладчиком, теперь выполняется в асинхронном режиме.

Отладка в Development Tools

При создании нового механизма отладки мы реализовали новый, универсальный программный интерфейс взаимодействия с ним. Этот интерфейс использует конфигуратор 1С:Предприятия, и этот же интерфейс использует теперь и новая среда разработки . Таким образом, все возможности отладки доступны теперь и при работе в .

Архитектура процесса отладки

Новая архитектура отладки выглядит следующим образом:

В отладке участвуют отладчик, предметы отладки и новый элемент - сервер отладки .

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

И сам отладчик, и предметы отладки взаимодействуют с сервером отладки по протоколу HTTP. Таким образом теперь неважно, где эти предметы отладки расположены.

Взаимодействие с сервером отладки выполняется по инициативе отладчика и предметов отладки. Для этого организуются дополнительные соединения. Их основное назначение - узнать, не появилась ли для них информация на сервере отладки. И если появилась, получить эту информацию.

Таким образом, взаимодействие получается одностороннее. Информация всё время передаётся с сервера отладки в отладчик, и в предметы отладки.

Идентификация информационных баз

В прежнем механизме для идентификации информационных баз использовалась строка соединения. Такое решение в некоторых случаях вызывало трудности с сопоставлением предметов отладки и конфигуратора. Потому что, во-первых, оно было регистрозависимым, а во-вторых, при отладке некоторых контекстов платформа формировала строку соединения автоматически. И она не всегда совпадала с той, которую вы указывали при подключении информационной базы в конфигураторе. Поиск и исправление таких ситуаций усложняли процесс отладки.

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

Приятным дополнительным моментом здесь является то, что мы пока сохранили в платформе старый механизм отладки (в дальнейшем он может быть исключён). И вы можете пользоваться им при желании, или при необходимости. Так вот старый механизм мы доработали, и теперь он тоже использует идентификатор информационной базы, а не строку соединения.

Типичные сценарии отладки

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

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

Файловый вариант

Прежде чем начать отладку в файловом варианте, в настройках конфигуратора нужно указать, что вы хотите использовать новый механизм отладки - «Отладка по протоколу HTTP ».

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

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

Теперь при старте конфигуратора, или при его перезапуске, платформа автоматически будет запускать ещё и сервер отладки. Это отдельное приложение dbgs.exe. Вы можете увидеть его в диспетчере задач.

В параметре ownerPID у него указан идентификатор того приложения, которому принадлежит этот сервер отладки. В данном случае это конфигуратор 1С:Предприятия.

Теперь, если из конфигуратора вы запустите отладочный сеанс 1С:Предприятия, он автоматически подключится к серверу отладки, и в конфигураторе вы увидите подключенные предметы отладки.

Если сеанс 1С:Предприятия был запущен без отладки, то, как и раньше, вы можете подключить его к отладчику. Только теперь нужно указывать адрес сервера отладки:

Этот адрес вы можете узнать из настроек предметов отладки:

Есть один непривычный момент, связанный с работой сразу с несколькими файловыми базами. В файловом варианте каждый конфигуратор с включенной отладкой http запускает свою копию сервера отладки на разных портах:

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

Клиент-серверный вариант

Прежде чем начать отладку в клиент-серверном варианте, вам нужно, как и раньше, запустить сервер 1С:Предприятия в режиме отладки, но указать, что для отладки будет использоваться новый механизм HTTP. Например, так:

ragent.exe -debug -http

При таком запуске сервера будет запущен и сервер отладки.

В параметре ownerPID у него будет указан идентификатор менеджера кластера 1С:Предприятия.

Теперь в настройках конфигуратора, как и в случае файловой базы, вам нужно указать, что вы хотите использовать новый механизм отладки - «Отладка по протоколу HTTP ».

При этом конфигуратор автоматически предложит вам использовать уже сервер отладки кластера, а не локальный сервер. С этим нужно согласиться и перезапустить конфигуратор.

Подключение предметов отладки

При запуске отладочных сеансов из конфигуратора, приложения выполняют автоматическое подключение предметов отладки (как клиентского, так и серверного) к серверу отладки.

При этом, как и раньше, у вас есть возможность настроить в конфигураторе автоматическое подключение предметов отладки независимо от того, каким образом они были запущены. Теперь эти возможности стали гораздо богаче.

Во-первых, теперь платформа предлагает вам для выбора все возможные предметы отладки.

А во-вторых, появился ещё один, более тонкий способ настройки. Это использование заранее созданных отборов.

Такие отборы вы можете использовать как при подключении предметов отладки, так и для просмотра доступных предметов отладки.

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

Изменение переменных, свойств объектов и асинхронные вычисления выражений

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

Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, мы реализовали окно «Локальные переменные ».

Внешне оно очень похоже на привычное вам «Табло». Но, во-первых, это окно уже автоматически заполнено всеми локальными переменными, а во-вторых, значения переменных вы можете теперь менять.

Значения примитивных типов вы можете изменить прямо в ячейке «Значение »:

А для изменения других значений вы можете воспользоваться окном ввода выражений:

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

Точно таким же образом вы можете изменять и значения любых (не только локальных) переменных, свойств, доступных для записи. В окне вычисления выражений (которое вызывается командой Shift+F9) вы можете менять значения переменных как в ячейке «Значение», так и с помощью отдельного диалога.

Кстати, само вычисление выражений теперь выполняется асинхронно. Это означает, что конфигуратор заказывает вычисление предмета отладки. И некоторое время это вычисление ожидается на сервере. Если вычисление выполнено, то результаты сразу поступают в конфигуратор. Если вычисление выполняется продолжительное время, то результаты этих вычислений асинхронно приходят в конфигуратор позже. Такой подход позволяет вам не ожидать длительных вычислений в конфигураторе, и продолжить свою работу.

Как запустить отладку на сервере 1С...

По умолчанию, при использовании клиент-серверной архитектуры 1С:Предприятие режим отладки кода 1С работает только на клиентской стороне. Серверные процедуры и функции не видны клиентской машине.

Чтобы включить использование отладки на сервере 1С, необходимо выполнить следующие действия:

1. Найти и остановить в диспетчере служб службу «Агент сервера 1С:Предприятия 8.3» (для версии 8.3).

2. Открыть редактор системного реестра. Можно воспользоваться командной строкой или инструментом меню Пуск – Выполнить… и командой regedit .

3. В реестре найти ветку:

  • Для версии 1С 8.1
  • Для версии 1С 8.2
  • Для версии 1С 8.3

4. Изменить свойство ImagePath, добавить в конец строки директиву «-debug». Получится следующая строка свойства: «C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv8\srvinfo» –debug

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

Инструкция

Внимательно изучите данные, которые вы имеете об этом сервере. Для установления связи вам надо знать его ip-адрес и порт, с которым будет осуществляться соединение. Для большинства серверов, работающих с http-протоколом, стандартным является порт 80.

На сервере могут быть открыты и другие порты – все зависит от того, какие сервисы на нем запущены. Например, ftp – 21 порт, telnet – 23 порт, SMTP (отправка почты) – 25 порт, POP (получение почты) – 110 порт и т.д. Многие из таких портов потенциально открыты для соединения, но при попытке установить связь могут потребовать ввести пароль.

Как узнать, какие порты открыты на сервере? Для выяснения этого используйте – например, Nmap или XSpider. Вы можете поискать в сети информацию и о других сканерах. Для пробы введите в сканер адрес 127.0.0.1 и попробуйте осуществить сканирование. Вы получите информацию о портах, открытых на вашем компьютере.

Собственно процесс сканирования может осуществляться разными способами. Например, вы можете задать для сканирования конкретные порты для поиска определенных сервисов, а можете проверить все порты полностью. Определив, какие порты открыты на сервере, вы можете попробовать к ним подключиться.

Для подключения вам потребуются программы, работающие с соответствующими сервисами сервера. Например, если открыт 21 порт, вам нужен ftp-клиент. При открытом 23 вам потребуется telnet. Сканируя порты, вы можете найти такие, которые используются программами удаленного администрирования – например,Anyplace Control, Access Remote PC, DameWare NT Utilities, RemotelyAnywhere, Radmin, VNC и пр.

Найдя открытый порт, вы можете попробовать к нему подключиться. Скорее всего, вас попросят ввести пароль, но порой администраторы не меняют стоящий по умолчанию. Например, для популярной программы Radmin (порт 4899) по умолчанию стоит пароль 12345678 или 123456789.

Существует масса программ, позволяющих подбирать логины и пароли к подобным сервисам, но вы должны знать, что такая деятельность незаконна и уголовно наказуема. Поэтому работайте с портами, соединение с которыми администратор сервера разрешает. Например, ftp – по этому протоколу можно успешно скачивать большие объемы данных, просматривать доступные для просмотра файлы. Хороший ftp-клиент есть в популярном файловом менеджере Total Commander.

Видео по теме

Архитектура сетей является сложной системой, работа которой может сопровождаться ошибками и неполадками. Почти каждый активный пользователь компьютера встречался с надписью «Ошибка доступа к серверу», будь то ненайденный сайт или ошибка соединения приложения.

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

Одной из самой частой причин является использование неправильного адреса. Убедитесь, что вы вводите правильное название веб-страницы или IP-адрес. Они могли смениться или прекратить свое существование.

Причиной отсутствия возможности подключения к серверу может являться невозможность доступа к нему по физическим причинам. Компьютер может быть отключен аппаратно, быть сломан, или в системе могут присутствовать неполадки , соединяющего машину с интернетом.

Другой причиной отсутствия связи может являться политика безопасности. IP-адрес вашего компьютера может быть занесен по тем или иным причинам в черный список сервера, запрещающий все или некоторые виды соединения. С другой стороны, нередки случаи причин запрета соединения, исходящих со стороны клиента. Убедитесь, что антивирусные программы или сетевые мониторы вашего компьютера или сервера корпоративной сети не блокируют адрес, к которому вы хотите подключиться.

Если связь построена на основе использования программ-клиентов, подключаемых к серверу, обратитесь на сайт разработчика и убедитесь, что вы используете последнюю версию. В противном случае обновите программу. Если вы используете неоригинальную, но совместимую с сервером программу-клиент, то попробуйте установить другие варианты программного обеспечения или оригинальную версию продукта.

Ошибка соединения может быть связана с трассировкой к серверу. Используйте соответствующие команды проверки. Возможно, запрос на подключение к серверу просто не доходит до адресата из-за неполадок в промежуточных узлах.