1с как отладить регламентное задание

Иногда возникает необходимость отладить фоновое (регламентное) задание. Как раз с этим-то, зачастую, и возникает проблема. И проблема эта заключается в том, что отладчику не удается подключиться к процессу исполняемому на стороне сервера.

Для решение этой проблемы нам необходимо решить две задачи:

1. Включить отладку на сервере 1С. По умолчанию отладка на сервере выключена и чтобы ее включить, необходимо:Запустить реестр Windows, прописав в «Выполнить» команду REGEDIT. Найти строчку

«C:Program Files1cv81in
agent.exe» -srvc -agent

(взятую из параметров запуска службы Агент сервера 1С:Предприятия 8.1). (это для версии платформы 8.1)

Дописать в конец ключ -debug (не забываем перед ключом -debug ставить пробел)

Пример
. [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices1C:Enterprise 8.1 Server Agent] «ImagePath»= было «С:Program Files1cv81in
agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «С:Program Files1cv81server»
ставим «С:Program Files1cv81in
agent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «С:Program Files1cv81server»

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

2. Регистр букв имени сервера и имени базы в соединение клиента с сервером 1С должен в точности совпадать.

Правильное подключение:
Фоновое задание — Srvr=»SERVER-NAME»;Ref=»Base_Name»; Клиент — Srvr=»SERVER-NAME»;Ref=»Base_Name»;

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

Код следующий:

Процедура ЗаписатьСоединениеСБазой () Экспорт
ЗаписьЖурналаРегистрации (. СтрокаСоединенияИнформационнойБазы ());
КонецПроцедуры

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

Далее необходимо указать эти параметры в настройках запуска клиентского приложения С УЧЕТОМ РЕГИСТРА СИМВОЛОВ.

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

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

1С Как включить режим отладки фоновых заданий

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

Отладка — Подключение . — нажать кнопку Автоматическое подключение и в открывшейся форме установить флажок Фоновые задания.

И тогда точка останова будет срабатывать даже на коде который запущен, как фоновое задание.

В этой статье рассматриваются ситуации, в которых процесс отладки (или процесс запуска отладки) проходит каким-либо особенным образом.

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

Отладка внешних объектов

Отладка обычных внешних обработок и отчетов, как правило, не вызывает трудностей — главное открывать в конфигураторе и предприятии один и тот же файл внешней обработки/отчета.

Отладка внешних печатных форм

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

В обычном приложении внешняя печатная форма имеет реквизит «СсылкаНаОбъект» и функцию «Печать», которая вызывается без параметров. Следовательно наиболее простым вариантом будет создать форму обработки, вывести на эту форму реквизит «СсылкаНаОбъект» (что бы его можно было заполнить) и по нажатию кнопки (или при другом событии) вызвать процедуру «Печать». В этом варианте внешняя печатная форма превращается в обычную внешнюю обработку и отлаживается также.

Для управляемого приложения нужно сделать примерно тоже самое — эмулировать вызов функции «Печать», для этого создать форму обработки, добавим ей реквизит «СсылкаНаОбъект» (и выведем его на форму) и команду с примерно таким кодом:

Форма обработки

Отладка внешних обработок табличных частей

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

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

Отладка внешней обработки заполнения в управляемом приложении немного отличается от внешних печатных форм, так как обработка заполнения уже может иметь основную форму, в этом случае можно создать еще одну форму (такую же как для внешних печатных форм), назначить ее основной и эмулировать вызов команды заполнения, например так:

Кроме этого имеется прекрасная обработка, которая помогает отлаживать внешние обработки заполнения: ссылка.

Отладка Web-сервисов, HTTP-сервисов и интерфейса OData

Для отладки Web-сервисов, HTTP-сервисов и интерфейса OData нужно разрешить соответствующую возможность при публикации сервиса/интерфейса на веб-сервере, например:

Включение отладки при публикации сервиса/интерфейса

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

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

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

Отладка регламентных/фоновых заданий

Напомню, что регламентные задания — это механизм 1С, предназначенный для каких-либо действий по расписанию. А фоновое задание — это объект, который создается регламентным заданием и непосредственно выполняет требуемые действия. Стало быть в отладке нуждаются именно фоновые задания, а регламентные задания просто настраиваются (расписание, пользователь и тд.).

Для отладки фонового задания, так же как и в предыдущем разделе, нужно настроить автоматическое подключение предметов отладки. Для этого идем в меню «Отладка»-«Подключение…» , открываем окно настройки автоматического подключения и указываем, что нам нужно автоматически подключать фоновые задания:

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

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

Отладка мобильного приложения

Отладка мобильного приложения возможна только по протоколу HTTP. Хотя для устройств на Android-е возможен вариант с подключением по USB-кабелю и использованием Android Debug Bridge, но это частный случай. В общем же случае нужно переключиться на отладку по протоколу HTTP (подробнее об этом в предыдущих статьях цикла). Затем в настройках мобильного приложения нужно разрешить настройку и указать адрес отладчика, например так:

Разрешаем отладку и указываем адрес отладчика

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

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

Оцените статью
SoftLast
Добавить комментарий