Компьютеры и современные гаджеты

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

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

Включение режима отладки на сервере для платформы 1С версии 8.2 и выше

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

  • Остановите через Диспетчер сервера службу «Агент сервера 1С:Предприятия». Если настройка проходит на рабочем сервере, то стоит позаботиться заранее об отсутствии пользователей 1С в базе;
  • Запускайте редактор реестра системы путем нажатия «Пуск»-«Выполнить» или сочетания клавиш «Win»+«R». В открывшемся окне ввести строку «regedit»;
  • В реестре необходимо найти пункт ;

  • Среди параметров найти «ImagePath» и изменить его, добавив к существующему значению через пробел в конце «-debug»;
  • Через Диспетчер сервера запустить службу, которую останавливали – «Агент сервера 1С:Предприятия».

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

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

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

Для того чтобы можно было отлаживать серверные процедуры надо установить флаги в форме "Сервис->Параметры" конфигуратора:

Отладка на сервере приложений

Это описано в документации:

Книга «1С:Предприятие 8.1. Конфигурирование и администрирование»

Глава 18. Инструменты конфигурирования

Отладчик и замеры производительности

"Отладка кода на сервере

Для установки отладочного режима следует запустить сервер 1С:Предприятия с ключом командной строки /Debug (ragent.exe /debug)."

Ключи запуска агента сервера описаны в книге:

«1С:Предприятие 8.1. Клиент-сервер. Особенности установки и использования»

"Запуск агента сервера как сервиса

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

Если агент центрального сервера был установлен как приложение, то существует возможность зарегистрировать сервис вручную и затем осуществить его запуск.

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

Ragent.exe -instsrvc -usr <пользователь> -pwd <пароль> -port <порт> -range <диапазоны> -seclev <уровень> -debug | -rmsrvc | -start | -stop

Instsrvc – регистрация агента кластера как сервиса Windows. Если ragent.exe запущен с этим ключом, то он выполняет регистрацию в списке сервисов Windows и завершается. Не совместим с ключами -srvc, -rmsrvc;

Usr <имя пользователя>

Pwd <пароль пользователя> – имя и пароль пользователя Windows, от имени которого должен запускаться ragent.exe как сервис Windows. Могут использоваться только совместно с ключом -instsrvc при регистрации ragent.exe как сервиса Windows;

Port <порт> – номер главного порта агента кластера. Этот порт используется консолью кластера для обращения к центральному серверу. Порт агента кластера также указывается в качестве IP порта рабочего сервера;

Range <диапазоны> – диапазоны IP портов для динамического выбора. Из них выбираются служебные порты процессов кластера при невозможности их выбора из настроек соответствующего рабочего сервера. По умолчанию: 1560-1591. Примеры значений <диапазоны>: «45:49», «45:67,70:72,77:90»;

Seclev <уровень> – уровень безопасности процесса агента кластера. Определяет уровень безопасности соединений, устанавливаемых с процессом ragent.exe. <уровень> может принимать значения: 0 (по умолчанию) соединения не защищенные, 1 – защищенные соединения только на время выполнения аутентификации пользователей, 2 – постоянно защищенные соединения.;

Rmsrvc – отмена регистрации агента кластера как сервиса Windows. Если ragent.exe запущен с этим ключом, то он отменяет свою регистрацию в списке сервисов Windows и завершается. Не совместим с ключами -srvc, -daemon, -instsrvc.

Start - запустить ragent.exe, зарегистрированный как сервис Windows. Выполняет запуск ragent.exe, ранее зарегистрированного как сервис Windows, после чего завершается;

Stop - остановить ragent.exe, зарегистрированный и запущенный как сервис Windows. Выполняет остановку ragent.exe, ранее зарегистрированного и запущенного как сервис Windows, после чего завершается;

Debug - запуск кластера серверов в режиме отладки конфигураций. "

Таким образом если сервер 1С:Предприятия был запущен как сервис и по каким-то причинам в отладочном режиме он так же должен быть запущен как сервис, необходимо сначала отменить регистрацию сервиса (ключ -rmsrvc), а затем заново зарегистрировать сервис с ключом -debug.

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

Срабатывает только при установке ключа "-debug" в реестре. Во всех остальных случаях почему-то не работает.

"ImagePath"=

было "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "F:\Program Files\1cv81\server"

поставили "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "F:\Program Files\1cv81\server"

18.10.2016

Отладка на сервере 1С (8.2, 8.3...)

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

Включаем отладку на сервере "1С:Предприятие" 8.2, 8.3

Первое что необходимо сделать, это остановить службу сервера "1С:Предприятие". Заходим "Пуск - Выполнить" (либо сочетание клавишь "Windows + R"), пишем "services.msc" (конечно нужно открывать управление службами Windows от Администратора)

После остановки открываем редактор реестра Windows ("Пуск - Выполнить" (либо сочетание клавишь "Windows + R") пишем "regedit"), и находим ветку с именем "" либо "" в зависимости от версии платформы


Нас интересует ключ реестра с именем "ImagePath". В конце значения ключа дописываем " -debug". Это и означает, что режим отладки на стороне сервера 1С активизируется.
Было: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Стало: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug


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

Как запустить отладку на сервере 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С можно смело проверять отладчиком и устанавливать точки останова везде, где требуется.

Эта статья рассказывает о том, как включить отладку на сервере 1С 8.1, 8.2 и 8.3 в операционных системах Windows и Ubuntu.

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

  • Как включить отладку на сервере 1С

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

Запускаем редактор реестра, выполнив команду regedit (при помощи Win+R или Пуск->Выполнить).

Подробнее об отладке по протоколу HTTP и о сервере отладки можно прочитать в следующей статье серии.

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

В начале становим сервер:

sudo service srv1cv83 stop

После этого открываем от имени суперпользователя файл /etc/init.d/srv1cv83 и находим в нем строку:

И приводим ее к такому виду:

Затем запускаем сервер вновь:

sudo service srv1cv83 start

В конфигураторе на клиентской машине идем в «Параметры» -> «Запуск 1С:Предприятия» -> «Дополнительные» и включаем два пункта:

  • «Устанавливать режим разрешения отладки»
  • «Начинать отладку при запуске»

О том, как установить сервер 1С на Ubuntu 16.04/18.04 можно прочитать в .

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

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
Компьютеры и современные гаджеты