1с искать предметы отладки на удаленном компьютере
Описание ошибки:
База работает в режим клиент-сервера. Релиз платформы 1С:Предприятие 8.3.17.1851. При работе на клиентском месте в конфигураторе, в режиме отладки в предметах отладки нет типа сервер, а есть только тонкий клиент.
Возникшую ситуацию нельзя классифицировать как ошибку в чистом виде, но на сайте описание решение данной проблемы больше подойдет для раздела описания ошибок и их устранения.
Нажатие на изображении увеличит его
Рис. 1. Пример наличия в предметах отладки 1С только типа «Тонкий клиент», тип «Сервер» отсутствует.
Первым делом, на всякий случай, было проверено наличие параметра debug у службы Агент сервера 1С: Предприятия 8.3, т.к. была уверенность, что его уже ранее устанавливал, иначе отладка вообще не могла быть возможной даже в процедурах и функциях на стороне клиента. Без этого параметра отладка для клиент-серверного варианта базы совсем работать не будет, поэтому есть напоминание в статье о том, как «включить отладку для сервера». Параметр -debug был указан. Поэтому в предметах отладки есть тип «тонкий клиент» и &НаКлиенте отладка кода выполнялась. Отладка не происходила в коде на стороне &НаСервере.
Сталкивался, конечно со случаем, когда отладка для типа «сервер» автоматически не подключалась в предметах отладки. Но разбираться было долго. Быстрее было просто ее подключить из списка «доступные предметы отладки» с помощью соответствующей кнопки и работать дальше.
Нажатие на изображении увеличит его
Рис. 2. Пример подключения предмета отладки типа «Сервер», если автоматически не в списке «Подключенные параметры отладки».
Это оказалось удивительным, что так может быть, но если верить обсуждению на форуме infostart по теме того, что не запускается отладка для процедур и функций, выполняющихся на стороне сервера, но проблема могла быть в том, как именно указан параметр debug для исполняемого файла а настройках службы «Агент сервера 1С:Предприятие». В общем можно указать не -debug, как ранее работало у меня во всех случаях и как описано в качестве напоминания на сайте, а /debug.
Нажатие на изображении увеличит его
Рис. 3. Исходное положение и указание параметра debug c «-«.
Что и было изменено в данном случае, чтобы устранить проблему с отсутствием в параметрах отладки платформы 1С 8 отладки для серверных процедур и функций. Как отредактировать/добавить параметр debug можно прочитать по ссылке.
Нажатие на изображении увеличит его
Рис. 4. Измененное положение и указание параметра дебаг с «/».
Но в этот раз, увы, оказался не тот случай. Вариант указания параметра debug не помог. Проблема была еще в чем-то другом. Но проверка наличия параметра — это первоочередной вариант для устранения описываемой проблемы, т.к. наиболее часто встречающаяся, поскольку при установке службы агента сервера 1С автоматически параметр не прописывается.
Как видно, что в связи с вариацией указания параметра debug может возникать пространство вариантов проявлении ошибки или наоборот, при остальных прочих условиях она может себя не показать. Замечно, что проблема редкая и может встречаться на клиентских рабочих местах. Если работать непосредственно на сервере, то себя может и не проявить даже с ключом -debug.
Но проблема сохранилась. Было решено исключать экзотический вариант. Там же, на форуме infostart, обсуждался нюанс относительно того, что не совпадает регистр имени базы в списке баз и на самом сервере.
Нажатие на изображении увеличит его
Рис. 5. Опыт проверки указания строки подключения информационной базы 1С 8.
Т.е. строка соединения с базой должна быть такой же, учитывая регистры букв, как и строка соединения с информационной базой, которая используется для работающего фонового задания. Получить можно с помощью функции СтрокаСоединенияИнформационнойБазы().
Можно скачать обработку для определения строки соединения с базой для управляемого интерфейса и для обычного интерфейса. Обработку можно открыть через «Главное меню» — «Файл» управляемого интерфейса или просто меню «Файл» обычного и через пункт «Открыть . » запустить файл соответствующей обработки.
Рис. 6. Пример обработки, содержащей функцию СтрокаСоединенияИнформационнойБазы() для управляемого приложения.
Этот момент был в моем случае. Он был приведен в порядок — имя базы было указано как и на сервере 1С: Предприятия — в данном случае в верхнем регистре, но и это не помогло.
Рис. 7. Исправление указания расположения базы 1С 8 с учетом регистра букв в имени базы на сервере.
Но и это не помогло.
Если консолидировать оставшиеся варианты, которые когда-либо помогали, то среди рекомендаций оставались: отключить брендмауэр ОС, в частности Windows, или антивирус, проверить не закрыты ли порты в случае тонкой настройки ограничений на сервере или клиентском рабочем месте.
Было решено провести эксперимент и отключить брандмауэр Windows. «Панель управления» — «Система и безопасность» — «Брандмауэр Windows» и отключение через ссылку «Включение и отключение брандмауэра Windows».
Рис. 8,9. Отключение брандмауэра в Windows для устранения проблемы отсутствия отладки на стороне сервера в Конфигураторе 1С 8
И это помогло — в предметах отладки сдал доступен серверный вариант:
Рис. 10. Результат решения проблемы. Тип «Сервер» в предметах отладки доступен после отключения брандмауэра.
Конечно, оставлять отключенным защитник (брандмауэр) Windows не стоит, если не установлено никаких антивирусных программ на рабочем месте. Но в данной публикации показано явное влияние на работу процесса отладки 1С 8. Если в Вашем случае все-таки причиной окажется брандмауэр, то следует обратиться, если Вы не разбираетесь в настройках, к профильному специалисту, например к системному администратору, чтобы он проверил настройки прав и ограничений и установил их так, чтобы не было препятствий для запуска отладки сервера при конфигурировании в 1С 8.
Подключение к серверу отладки через https, в т.ч. с использованием технологии 1С:Линк
Возникают моменты, когда приходится выполнять отладку по http , находясь во внешней сети. При этом доступ к внутренним ресурсам ограниченный.
Например, имеется внутренняя сеть организации, в которой развернуто окружение разработки, есть несколько серверов и запущен сервер отладки. Разработка и отладка внутри сети выполняется постоянно, и возникающие ошибки исправляются оперативно. Помимо этого продуктивный контур этой организации находится во внешней сети и подключение к основному серверу реализовано с помощью защищенного подключения к веб серверу. Кроме открытого порта 443 доступ к внутренней сети отсутствует. Для того, чтобы выполнить отладку сотруднику приходится просить воспроизведения сценария, либо подключаться удаленно для того, чтобы составить сценарий самостоятельно. Возможности отладки напрямую в такой ситуации отсутствуют.
Решением таких проблем является настройка и перенаправление запросов отладки через соединение с веб сервером, либо использование агента 1С:Link (при условии, что используется данная технология). Ниже представлены примеры настройки перенаправления запросов к серверу отладки для веб серверов Nginx и IIS , а также подключение к серверу отладки с помощью агента 1С:Link .
2. 1С:Линк
При установке агента 1C:Link и публикации сервера, на компьютере на котором расположен сам агент открывается дополнительный тунель для порта 1550 .Канал работает только для локального адреса, без возможности указания порта сервера отладки. Тунель открывается и слушает порт в не зависимости от того, запущен сервер отладки или нет.
Если сервер запущен, то можно проверить его доступность с помощью браузера: введите в адресной строке адрес опубликованного сервера и ресурс /debugger/ (https://.link.1c.ru/debugger/).
В окне браузера отобразится страница с сообщением:
1C:Enterprise 8.3 Debug Server (8.3.17.1091) © 1C-Soft LLC 1996-2019 — it works!
Настройка удаленного подключения к опубликованному серверу отладки
Настройка выполняется в конфигураторе в меню » Сервис » > » Параметры «, вкладка «Отладка»:
- Протокол отладки : Отладка по протоколу HTTP;
- Адрес удаленного сервера отладки : https://.link.1c.ru/debugger/);
- Имя информационной базы : опционально, если имя информационной базы не совпадает с именем текущей базы (для которой открыт конфигуратор).
Примените изменения и перезапустите конфигуратор.
Для проверки работоспособности сервера, откройте окно подключения предметов отладки (меню » Отладка » > » Подключение «):
Если при перезапуске конфигуратора возникла ошибка , то необходимо проверить доступность сервера и публикации, с того компьютера, на котором запущен конфигуратор.
Для подключения клиента 1С:Предприятия для отладки, необходимо в параметрах запущенного приложения (» Файл » > » Настройки «) разрешить отладку в текущем сеансе и указать сервер отладки :
После этого подключить необходимый клиент для отладки в конфигураторе.
3. Настройка веб сервера
Предполагается, что сервер отладки запущен на внутреннем сервере и работает на порту 1550 . В качестве имени внутреннего сервера, для примера, является internal. server.01 . Адрес веб сервера external. server.02. Имя ресурса debugger может быть произвольным и используется в качестве примера.
3.1. Nginx
Для того, чтобы можно перенаправлять запросы к северу отладки через Nginx , необходимо добавить в настройки описания доступных ресурсов веб сервера (конфигурационные файлы в sites-available ) следующее правило расположения в секции server:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
После настройки конфигурационного файла убедиться, что команда nginx –t не возвращает информацию об ошибках.
Проверить доступность сервера можно с помощью браузера: введите в адресной строке адрес внешнего сервера и ресурс /debugger/ (https://external.server.02/debugger/). В окне браузера отобразится страница с сообщением:
1C:Enterprise 8.3 Debug Server (8.3.17.1091) © 1C-Soft LLC 1996-2019 — it works!
3.2. Настройка сервера IIS
Для того, чтобы IIS умел перенаправлять запросы, необходимо установить дополнительно компоненты « URL Rewrite » и « Application Request Routing ». Это можно сделать либо с помощью Web Platform Installer , либо вручную по следующим ссылкам:
После установки в консоли управления IIS для публикации сайта появится новый пункт меню:
Необходимо нажать на новый пункт меню и в открывшемся окне нажать кнопку «Добавить правила».
Откроется окно, в котором укажите адрес внутреннего сервера отладки (internal.server01:1550) и нажмите ОК .
Правило будет создано и его нужно будет открыть из списка правил для дополнительной настройки.
В окне настроек правила укажите следующие параметры:
- Шаблон : debugger(.*)
- URL-адрес переопределения : http://internal.server.01:1550/
- Добавить строку запроса : Истина
- Регистрировать переопределенный URL-адрес в журнале : Истина
Для завершения настройки осталось добавить правило перенаправления с порта 443 источника и нажать кнопку « Применить »:
После применения правила перезапустите сервер IIS .
Способ проверки работоспособности перенаправления запросов в сервер отладки, такой же как и при настройке Nginx.
4. Ссылки
1С:Предприятие. Документация :: Глава 32. Отладка и тестирование прикладных решений
Включение отладки на сервере 1С
По умолчанию в клиент-серверном варианте отладка на сервере запрещена, т.е. точки останова, поставленные в серверных процедурах игнорируются. На рабочих системах это оправдано, но для разработки очень неудобно. Рассмотрим как можно включить/выключить режим отладки на сервере.
Отладка на стороне клиента доступна всегда. С сервером несколько сложнее. Возможность отладки на сервере регулируется параметрами запуска службы агента сервера 1С:Предприятия. Если в параметрах запуска службы присутствует ключ -debug, то отладка на сервере разрешена.
Для включения режима отладки на сервере необходимо:
- Открыть редактор реестра Windows (вызвать окно запуска приложений комбинацией клавиш Win+R и вбить в строку ввода «regedit»);
- Открыть раздел реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices1C:Enterprise 8.3 Server Agent (x86-64);
- Открыть параметр ImagePath, и добавить ключ » -debug». Пример после изменения: «C:Program Files1cv88.3.10.2168binragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:Program Files1cv8srvinfo» -debug;
- Перезапустить службу агента сервера 1С. Для этого можно перезапустить компьютер или перезапустить службу вручную:
Остались вопросы?
Спросите в комментариях к статье.
Для управления подключением выберите пункт «Отладка — Подключение«. На экран выводится окно для выбора предмета отладки.
В списке доступных предметов отладки содержатся предметы, с которыми допустимо выполнение отладки. В список попадают только те предметы отладки, которые относятся к отлаживаемой информационной базе и для которых установлена возможность отладки.
При отладке по протоколу HTTP — в список попадают те предметы отладки, которые также входят в выбранную область отладки. Чтобы установить область отладки, нажмите кнопку выбора в поле области. Настройка состава области выполняется в отдельном окне.
Фоновые задания попадают в список доступных предметов отладки только в тот момент времени, когда управление выполнением переходит назначенному обработчику. Так как выполнение может занимать очень незначительное время, для фоновых заданий в клиент-серверной базе рекомендуется устанавливать автоматическое подключение.
При запуске отладки веб-клиента из Конфигуратора, автоматически подключается предмет отладки, обслуживающий его серверную часть. При этом, в случае, если веб-клиент работает с серверной информационной базой, то отладка серверной части будет возможна только в том случае, если сервер 1С:Предприятия работает в режиме отладки.
Обычно список содержит одну строку с указанием на запущенную в режиме «1С:Предприятие» конфигурацию. Если запущено несколько приложений системы 1С:Предприятие 8 с данной конфигурацией, то список может содержать несколько строк.
При отладке по протоколу TCP/IP — Если флажок «Искать предметы отладки на удаленном компьютере» установлен, то в поле, расположенном справа от флажка, следует ввести имя компьютера (или его сетевой адрес) или выбрать имя из ранее вводимых имен. При этом в список доступных предметов отладки будут добавлены предметы отладки, найденные на удаленном компьютере. Список подключенных предметов отладки будет содержать те предметы отладки, которые уже подключены к отладчику.
Нажатие кнопки «Подключить» подключает к отладчику выбранный предмет отладки. В окне подключения это отображается переносом предмета отладки из списка доступных в список подключенных предметов отладки.
Для исключения предмета отладки укажите его в списке подключенных и нажмите кнопку «Отключить«. В окне подключения это отображается переносом предмета отладки из списка подключенных в список доступных предметов и к нему можно повторно подключиться. При этом точки останова, установленные в отключенных предметах отладки, не будут «срабатывать» при прохождении через них выполнения.
Для закрытия предмета отладки нажмите кнопку «Завершить«, для останова в месте выполнения — кнопку «Остановить«.
Для открытия диалога настройки диапазона (для отладки по протоколу TCP/IP) или диалога настроек (для отладки по протоколу HTTP) следует нажать кнопку «Настройки«.
Для автоматического подключения предметов отладки на сервере 1С:Предприятия, работающего в отладочном режиме, можно воспользоваться диалогом «Автоматическое подключение» и отметить в нем соответствующие типы предметов отладки.
Самый простой способ проверки работы режима отладки 1С на сервере
Если платформа 1С для проведения отладки будет запускаться не на сервере 1С, на стороне клиента должны быть открыты TCP и UDP порты для диапазона 1560-1591.
На стороне сервера должны быть открыты TCP порты 1540, 1541, 1560-1591.
ПРИМЕЧАНИЕ! Эти порты устанавливаются по умолчанию, если вы их меняли, то в фаерволе надо будет открыть новые.
Проверяем работу отладчика:
- Запускаем конфигуратор.
- Заходим в меню «Отладка» — «Начать отладку» или нажимаем клавишу «F5». Запустится платформа 1С в режиме предприятия.
- Не закрывая 1С предприятие, переходим в меню «Отладка» — «Подключение…».
Если столбец «Тип» заполнен значением «Сервер», то всё работает. Идём писать письмо программисту 1С.
ПРИМЕЧАНИЕ! Если сервер и клиент – не один сервер, ставим галочку «Искать предметы отладки на удаленном компьютере»: и указываем сервер 1С.
В блоке «Доступные предметы отладки:» столбец «Тип» должен быть заполнен значением «Сервер». Если у вас так, то всё работает.
Арендуя сервер для 1С в компании МАРС Телеком, вы всегда сможете получить помощь наших технических специалистов по этому и другим вопросам.