1. Главная страница » Компьютеры

1С не работает отладка на клиенте

Автор: | 16.12.2019

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

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

Из официальных источников мы имеем следующую информацию:

Выдержка из документа «Клиент-серверный вариант. Руководство администратора»

/debug

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

  • -tcp ‑ протокол TCP/IP;
  • -http ‑ протокол HTTP.

Значение по умолчанию: -tcp.

СОВЕТ. В связи с тем, что в режиме отладки производительность сервера падает, рекомендуется использовать отладочный режим только для тех серверов, на которых выполняется отладка.

ВАЖНО! Выдержка взята с сайта its.1c.ru.

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

Допустим, ты отвечаешь за ИТ инфраструктуру и к тебе подходит программист 1С, чтобы попросить запустить 1С в режиме отладки.

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

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

И когда речь уже заходит об отладке приложения, универсальные солдаты «тыжсисадмин» и «тыжпрограммист» уже не актуальны. На данном уровне навыки для системного администратора и программиста 1С сильно разнятся и совмещать их, оставаясь профессионалом с большой буквы «П», уже невозможно.

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

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

Есть несколько вариантов, но рассмотрим самый ходовой – изменение значения параметра реестра Windows.

Открываем реестр на сервере, где установлен сервер 1С.

Переходи по следующему пути:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices1C:Enterprise 8.3 Server Agent (x86-64)

Имя раздела может отличаться в зависимости от версии сервера 1С – 8.2 / 8.1 или его архитектуры – 32 / 64 битный.

Здесь нас интересует параметр ImagePath, а точнее его значение, которое и надо дополнить ключом «debug».

ПРИМЕЧАНИЕ! В разных статьях указаны различные варианты запуска режима отладки и это может ввести в заблуждение. Ключ «debug» можно добавлять в любое место после "C:Program Files1cv88.3.13.1644in
agent.exe" и использовать как знак «-», так и «/».

Например, будут одинаково работать:

"C:Program Files1cv88.3.13.1644in
agent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:Program Files1cv8srvinfo" -debug

"C:Program Files1cv88.3.13.1644in
agent.exe" /debug -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:Program Files1cv8srvinfo"

Первый вариант смотрится предпочтительней.

На выходе должно получиться следующее:

Перезапускаем службу «Агент сервера 1С:Предприятия 8.3 (x86-64)».

Поздравляю – режим отладки включен!

Осталось проверить его работу.

Самый простой способ проверки работы режима отладки 1С на сервере

Если платформа 1С для проведения отладки будет запускаться не на сервере 1С, на стороне клиента должны быть открыты TCP и UDP порты для диапазона 1560-1591.

На стороне сервера должны быть открыты TCP порты 1540, 1541, 1560-1591.

ПРИМЕЧАНИЕ! Эти порты устанавливаются по умолчанию, если вы их меняли, то в фаерволе надо будет открыть новые.

Проверяем работу отладчика:

  1. Запускаем конфигуратор.
  2. Заходим в меню «Отладка» — «Начать отладку» или нажимаем клавишу «F5». Запустится платформа 1С в режиме предприятия.
  3. Не закрывая 1С предприятие, переходим в меню «Отладка» — «Подключение…».

Если столбец «Тип» заполнен значением «Сервер», то всё работает. Идём писать письмо программисту 1С.

ПРИМЕЧАНИЕ! Если сервер и клиент – не один сервер, ставим галочку «Искать предметы отладки на удаленном компьютере»: и указываем сервер 1С.

В блоке «Доступные предметы отладки:» столбец «Тип» должен быть заполнен значением «Сервер». Если у вас так, то всё работает.

Арендуя сервер для 1С в компании МАРС Телеком, вы всегда сможете получить помощь наших технических специалистов по этому и другим вопросам.

Реализовано в версии 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. Например, так:

ragent.exe -debug -http

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Михаил Сайко

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

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

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

Включить отладку в 1С вы сможете по следующему алгоритму:

  • Перейдите на сервер 1С и откройте регистр через функцию «Выполнить» из меню «Пуск». Также можно воспользоваться одновременным нажатием клавиш Windows и R на клавиатуре. Введите команду открытия регистра — «regedit»;

  • В открывшемся окне в дереве слева пройдите по пути: «HKEY_LOCAL_MACHINE», «SYSTEM», «ControlSet001», «services», «1C:Enterprise 8.3 Server Agent»;

  • Выделив нижний пункт, в правой части находим реквизит с именем «ImagePath» и меняем его с помощью контекстного меню. Чтобы подключить отладку на сервере, к существующему пути добавляем строку « -debug»;

  • Осталось лишь перезапустить агент сервера 1С и можно использовать режим отладки на сервере.

Чтобы запустить отладку через клиентское приложение, заходим в 1С в режиме конфигуратора и выбираем в меню «Отладка» нужный режим. Большинство современных конфигураций работают в режиме тонкого клиента, соответственно, и отлаживать работоспособность лучше в данном виде клиента. Если в вашей конфигурации используются различные виды клиентов, то для большего спокойствия протестировать функционал можно во всех режимах. В момент запуска режима отладки 1С открывает режим «Предприятие».

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

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

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

  • Точки останова;
  • Пошаговая отладка кода;
  • Просмотр значений;
  • Стек вызовов.

Функции отладки 1С

Основная возможность отладки заключается в том, чтобы при работе в режиме Предприятия 1С запустить отладку и проверить, как отрабатывает код. Для этого разработчики 1С устанавливают точку останова на строке алгоритма. Чтобы это сделать, необходимо выделить мышкой строку и нажать кнопку с изображением красного круга. Также вы можете щелкнуть дважды на полосе слева от текста модуля или воспользоваться «горячей» клавишей F9.

Чтобы увидеть установленные точки останова, воспользуйтесь меню «Отладка». Там вы сможете убрать все точки, отключить их, добавить новую и ознакомиться с «горячими» клавишами. Также в этом меню можно установить точку останова с условием (в виде синего круга). Она пригодится в ситуациях, когда вам нужно проверять код при выполнении условия, которое вам придется прописать при установке точки.

Еще один полезный механизм из этого меню – «Остановка по ошибке», позволяющий останавливаться только в недопустимых ситуациях. После остановки вы попадаете в конфигуратор и можете использовать другие возможности отладки. К примеру, перемещаться по строкам кода с помощью специальных клавиш, описанных в меню «Отладка», где сверху выведены более популярные функции. Разница между F10 и F11 заключается в том, что в первом случае вы будете попадать во вложенные функции и процедуры.

Серверная отладка в 1С хороша еще и тем, что вы можете посмотреть значение переменных после выполнения каждой строки кода. Простейший вариант – просто навести курсор мыши, и 1С высветит значение в выплывающем окне. Но в платформе, в меню «Отладка», встроены еще два инструмента:

  • Табло. При вызове открывается окно, в котором можно перетащить переменные, выделив их двойным нажатием в коде. В окне показывается их значение и тип на протяжении всей отладки – можно следить за изменением в процессе выполнения алгоритма;

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

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

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

Читайте также:  Atkacpi driver что это

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *