Dbgs exe 1c что это

Обновлено: 30.06.2024

Ключи прописывал максимально в начале начале строки запуска и в конце и другие вариации.

В консоли сервера подключение и конфигуратора и клиента показывает на правильном кластере, к которому подключаюсь 1641.

"C:\Program Files\1cv82\8.2.19.106\bin\ragent.exe" -srvc -agent -debug -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv82\srvinfo"
И
"C:\Program Files\1cv8\8.3.9.1818\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d "C:\Program Files\1cv8\srvinfo" -debug
оба работают с отладкой

(5) готовые бат файлы для регистрации службы виндовс на нужных портах

(6) У меня в (0) ссылка как это сделать и в (0) я описал что это я сделал.

Добрался до (4) - ничего полезного. Это я все уже сделал.

(12) В отладку в серверные процедуры и функции не проваливается. По клиентским всё хорошо.

(13) В моем случае это отдельная служба и отдельный кластер, который виден в консоли серверов 1С.

(15) Это же тестовый контур. Обязательно должна быть одна версия платформы, но два разных экземпляра.
(17) Осталось проверить настройки файрвола и права пользователя службы.

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:

echo off
rem %2 - первые две цифры номеров портов. Для портов 1540,1541,1560:1591 - это цифра 15
set SrvcName="1C:Enterprise 8.3 Server Agent %240 %1"
Пример использования:

unregister-service 8.3.3.100 25

Командный файл останавливает службу и удаляет ее регистрацию. Имя службы формируется по тем же правилам, что и при регистрации новой (нестандартной) службы сервера «1С:Предприятия».

(19) По факту это тоже самое что и в (0) ссылка.
Какая разница как службу создавать с помощью батника или в ручную. В (0) вручную короче по сути и понятнее.
(18) Файрвол вообще отключен. Права посмотрю. Действительно под разными пользователями запускаются службы. Новая служба запускается под "Локальная система". Но это завтра ближе к обеду смогу глянуть.

(21) Подключения конечно есть - стоят все галочки. Я же в клиентские модули попадаю, а уже из них не попадаю внутрь серверного кода.
Кеш чистился. Можно ещё почистить.

Почему может не работать режим "Использовать сервер отладки кластера"?

(14) "В отладку в серверные процедуры и функции не проваливается. По клиентским всё хорошо" // Для начала добейся, чтоб ТСР-отладка заработала, затем уже на ХТТП переходи

(22) Из клиентских методов нельзя попасть в серверные - они в разных контекстах и на разных компах выполняются.

(24) "Она с в 8/3/10 через Ж работает" // Кто, ТСР? Не замечал. А на багборде или партнерке есть зафиксированные ошибки в этом плане?
(TCP) 1С вроде решила не сопровождать и с любого момента по TCP может прекратить работать. Но это не так важно. Отладка на сервере в любом случае не работает.
Серверный предмет отладки достуен (виден в списке предметов отладки)?
Может у тебя портов не хватает, выделенных рабочему серверу
Что-то не нашел каких-нибудь упоминаний о прекращении поддержки TCP-отладки, походу брешете вы оба.
А у автора, возможно, файрвол - причина неподключения/невидимости серверного предмета отладки.

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

Предмет отладки

Типы предметов отладки:

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

Выбор протокола отладки

Выбор протокола отладки

Выбор протокола отладки

  • Использовать локальный сервер отладки — вариант в основном для файловых информационных баз, в дополнительных полях можно указать адрес сетевой карты (если их несколько), а также один или несколько диапазонов портов которые будут использоваться для отладки, например: 1560:1591, 7700-8000;
  • Использовать удаленный сервер отладки — конфигуратор попытается подключиться к удаленному серверу отладки по указанному адресу и порту;
  • Использовать сервер отладки кластера — используется сервер отладки кластера серверов, кластер серверов должен быть запущен в отладочном режиме.

Протокол отладки TCP/IP

При отладке по протоколу TCP/IP отладчик ищет доступные предметы отладки на текущем или указанном компьютере. Для корректной работы отладчика (если конечно речь идет не о файловой базе на одного пользователя) очень рекомендуется нормально настроить сеть — в частности DNS-сервер и доступность отладочных портов (по-умолчанию 1560:1591).

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

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

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

Настройки отладчика

Настройки отладчика

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

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

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

Сервер отладки

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

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

Сервер отладки (dbgs) находится в каталоге bin, параметр --help покажет информацию об имеющихся параметрах запуска (там все довольно понятно), пример запуска:

C:\Program Files\1cv8\8.3.13.1513\bin\dbgs -a 192.168.0.170 -p 4000

Сервер отладки готов к работе

Сервер отладки готов к работе

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

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

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

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

Отбор предметов отладки

Отбор предметов отладки

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

Для настройки автоматического подключения предметов отладки существует специальный диалог:

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

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

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

Расчёт покрытия кода тестами

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

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

Логично предположить что чем выше покрытие кода, тем меньше ошибок должен содержать исходный код.

Любимый 1С-программистами SonarQube умеет показывать покрытие по двум показателям: покрытие строк и покрытие ветвей. Покрытие строк показывает какие строки кода были выполнены при тестировании, а какие нет. Покрытие ветвей вместо строк кода оперирует ветками условных операторов. Например код “Результат = ?(А>0, Б/А, 0);” содержит одну строку, но две ветки, которые мы должны протестировать. К сожалению платформа предоставляет только информацию по выполненным строкам кода, поэтому покрытие ветвей рассматриваться не будет.

Как осуществлялся анализ покрытия раньше?

Как осуществлялся анализ покрытия раньше

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

Схема

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

Можно ли сделать проще?

  • регистрироваться в качестве клиента сервера отладки dbgs.exe;
  • подключать все доступные объекты отладки;
  • включать замеры производительности;
  • конвертировать результаты замеров в формат genericCoverage для SonarQube ;
  • работать как с файловыми, так и с клиент-серверными базами.

Данный продукт уже некоторое время используется при тестировании проектов 42Облака.

При необходимости, в командной строке регистрации сервера «1С:Предприятия» также можно указать значения параметров /debugServerAddr , /debugServerPort и /debugServerPwd .

сервер отладки

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

Параметры --addr и --port должны совпадать с адресом отладчика, передаваемому в клиент тестирования. Если вы не знаете какой порт будет свободен на момент запуска, можно применить параметры --portRange и --notify . В первый параметр передается диапазон возможных портов, например 1550:1999 . Сервер отладки сам выберет свободный порт и запишет свой адрес в файл, указанный в параметре --notify . Параметр --ownerPID нужен для того чтобы не контролировать жизненный цикл сервера отладки. После завершения процесса, PID которого передан в этом параметре, сервер отладки завершится самостоятельно. Если вы используете менеджер/клиент тестирования, то в этом случае вам необходимо включить отладку только в клиенте тестирования. Обратите внимание что регламентные задания также должны выполняться в клиенте тестирования. Для этого менеджер тестирования запускайте с параметрами “/AllowExecuteScheduledJobs -Off” .

Запуск автоматического анализа покрытия

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

  • Выгружаем конфигурацию/расширение/внешнюю обработку в файлы (поддерживается как формат EDT, так и конфигуратора);
  • Запускаем сервер отладки (только для файловой базы);
  • Запускаем сбор данных покрытия командой Coverage41C start с параметрами командной строки:

Параметры -P и -s нужны для того чтобы передать в SonarQube корректный относительный путь к исходникам. Например ваши исходники находятся в папке “D:\Path\To\Sources\Project1\src\” и в SonarQube выгружается директория “D:\Path\To\Sources\Project1\” , тогда параметр -P должен быть равен “D:\Path\To\Sources\Project1\” , а -s иметь значение “src” . А если в SonarQube выгружается директория “D:\Path\To\Sources\Project1\src\” , то параметр -P должен содержать полный путь к исходникам “D:\Path\To\Sources\Project1\src\” , а параметр -s можно опустить. Если вы анализируете внешнюю обработку, то указывается путь не к директории с исходниками, а путь к xml (или mdo для EDT ) файлу с описанием внешней обработки.

После запуска программа Coverage41C прочитает исходники из указанной директории, подключится к серверу отладки и запустит замеры производительности для всех доступных объектов отладки. На инициализацию потребуется некоторое время, в зависимости от размера исходных кодов. Убедится в завершении инициализации программы можно выполнив в соседнем окне команду Coverage41C check с параметрами -i (имя информационной базы) и -u (или -u:file - адрес сервера отладки). Команда check завершится с кодом 0 после инициализации основной команды. После этого можно начинать тестирование.

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

После выполнения всех тестов нужно остановить анализ покрытия командой Coverage41C stop с параметрами -i (имя информационной базы) и -u (или -u:file - адрес сервера отладки). Команда stop также дожидается выполнения записи данных покрытия в файл и возвращает код 0 при успешном выполнении.

Далее файл genericCoverage.xml можно передать в SonarQube .

Запуск анализа покрытия с конвертацией

Если на сервере тестирования отсутствуют актуальные исходники тестируемого кода, существует возможность сбора данных покрытия во внутренний формат с последующей конвертацией в стандартный genericCoverage.xml . Для этого при запуске команды Coverage41C start нужно не указывать параметры -P и -s . После завершения анализа, мы получим файл во внутреннем формате, где вместо путей к исходникам будут указаны uuid метаданных. Данный файл можно преобразовать в genericCoverage.xml командой Coverage41C convert . У данной команды параметры аналогичны команде start , за исключением того что параметры подключения к серверу отладки тут отсутствуют и добавлен параметр

Работа без установленного EDT

Для работы программы требуются библиотеки EDT com._1c.g5.v8.dt.debug.core_*.jar и com._1c.g5.v8.dt.debug.model_*.jar. Если установить на сервер тестирования EDT полностью затруднительно, то можно скопировать эти библиотеки из папки с установленным EDT и указать путь к ним в переменной окружения EDT_LOCATION .

Передача данных покрытия в SonarQube

-Dsonar.sources=src -D"sonar.inclusions=**/*.bsl, **/*.os"

В результате в SonarQube мы получим процент покрытия на странице проекта:

процент покрытия на странице проекта

Кроме этого будет доступна детализация на странице исходников:

детализация на странице исходников

Зелёными отметками выделен код, исполнявшийся при тестировании. Красными - не исполнявшийся код.

Замеры покрытия по сценариям

Утилита поддерживает возможность анализа покрытия в разрезе сценариев. Для этого предназначены команды dump и clean . Команда dump записывает файл покрытия, команда clean очищает информацию о покрытии. Обе команды принимают параметры -i и -u . Таким образом если перед выполнением сценария запустить команду clean , а после выполнения - команду dump , то в файл запишется информация о покрытии исходного кода текущим тестовым сценарием.

Запуск анализа из Vanessa-ADD

Если вам не нравится работать с командной строкой, есть возможность подключить библиотеку шагов для BDD тестирования и управлять анализом покрытия из Gerkin - кода. Библиотека шагов сама скачивает последнюю версию Coverage41C , определяет имя текущей информационной базы и адрес сервера отладки. Библиотека добавляет следующие шаги:

Запуск анализа из Vanessa-ADD

Для корректной работы нужно в первом сценарии или в контексте установить параметры до запуска замеров (имя выходного файла, путь к проекту и исходникам, при необходимости - имя расширения, путь к внешней обработке, пароль, имя ИБ и адрес сервера отладки). Если Coverage41C не установлен в системе глобально, вызываем его установку в каталог проекта командой “я устанавливаю Coverage41C” . Далее запускаем анализ командой “я запускаю анализ покрытия” . Для записи результатов в файл нужно после выполнения последнего сценария вызвать команду “я останавливаю анализ покрытия” либо просто завершить процесс менеджера тестирования. Для файловых баз из кода можно запускать сервер отладки командой “я запускаю сервер отладки (в диапазоне портов)” .

Vanessa-ADD

Vanessa-ADD

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

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


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


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

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

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

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

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

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

Действующие акции

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

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

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

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

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

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

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

Добавляем ключ «-debug»

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

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

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

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

Перезапускаем службу «Агент сервера 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С в компании МАРС Телеком, вы всегда сможете получить помощь наших технических специалистов по этому и другим вопросам.

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