Тип: Строка. Произвольная строка символов. Как правило, расшифровывает и поясняет имя объекта метаданных.
Полное описание, параметры и ограничения
ОбъектМетаданных: РегламентноеЗадание.Комментарий (MetadataObject: ScheduledJob.Comment)
ОбъектМетаданных: РегламентноеЗадание (MetadataObject: ScheduledJob)
Комментарий (Comment)
Доступен, начиная с версии 8.1.
Использование:
Только чтение.
Описание:
Тип: Строка.
Произвольная строка символов. Как правило, расшифровывает и поясняет имя объекта метаданных.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Проверить определения регламентных заданий, не запуская их
Составляем список настроек задания из конфигурации. Отличаем определение, повтор после ошибки и реальное расписание экземпляра.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Сообщить(СтрШаблон("Определений заданий: %1", Метаданные.РегламентныеЗадания.Количество()));
Для Каждого Задание Из Метаданные.РегламентныеЗадания Цикл
Сообщить(СтрШаблон("%1 (%2): %3", Задание.Имя, Задание.Синоним, Задание.Наименование));
Сообщить(Задание.Комментарий);
Сообщить("Метод: " + Задание.ИмяМетода);
Сообщить(СтрШаблон("Использование %1; предопределенное %2; ключ %3",
Задание.Использование, Задание.Предопределенное, Задание.Ключ));
Сообщить(СтрШаблон("Повторов после аварии %1; интервал %2 секунд",
Задание.КоличествоПовторовПриАварийномЗавершении,
Задание.ИнтервалПовтораПриАварийномЗавершении));
Сообщить(Задание.Расписание = Неопределено);
КонецЦикла;Разбор по шагам
Читаем определения из Метаданные.РегламентныеЗадания. Никакие методы выполнения заданий не вызываются.
ИмяМетода — строка имени обработчика, не готовая команда для выполнения внешнего текста.
ИнтервалПовтораПриАварийномЗавершении измеряется в секундах и относится к повтору после аварии, не к обычной периодичности.
В локальном API свойство метаданных Расписание имеет тип Неопределено. Реальное расписание экземпляра надо получать через отдельный API заданий, не из этой строки.
Как проверить результат
Настройки метода и повторов совпадают со свойствами задания в Конфигураторе.
Сравнение Расписание = Неопределено даёт Истина; пример не показывает мнимую дату следующего запуска.
Если заданий нет, выведено количество 0; не создаётся новое задание.
Ожидаемый результат
Получен безопасный список определений заданий и их аварийных повторов.
На что обратить внимание
Использование в метаданных не доказывает, что планировщик сейчас работает или что последний запуск был успешным.
Фоновые задания, регламентные задания и история исполнения — разные объекты. Для диагностики исполнения нужны отдельные проверки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Прочитать описание задания, не запуская рассылки
У шаблона АнализДанныхДляОповещенийКлиентам выключено использование, нет предопределённости, задано три повтора. Это сведения метаданных, не состояние runtime-задания.
Где и как запускать
Полный серверный модуль изолированной учебной копии КА2 Progress 2.5.20.75; только чтение.
Подготовка
Отдельная учебная копия КА2 Progress 2.5.20.75 из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, платформа 8.5.1.1343. Создайте серверный общий модуль УчебныеКонтрактыОбработчиков.
Вставьте полный модуль одного урока и вызовите УчебныеКонтрактыОбработчиков.ВыполнитьПример() из своей учебной серверной команды.
Источники: Roles\ПолныеПрава.xml; EventSubscriptions\АктуализироватьСтруктуруПредприятия.xml; ScheduledJobs\АнализДанныхДляОповещенийКлиентам.xml и соответствующие CommonModules.
Код только читает метаданные и признаки прав. Он не назначает роли, не меняет параметры сеанса, не записывает организацию и не вызывает обработчик подписки или задания.
Учебная копия должна быть изолирована от рабочих фоновых заданий и внешних обменов её обычными средствами администрирования. Этот пример не выключает и не включает задания за пользователя.
Диагностика расширений и доступных прав зависит от активной базы и пользователя. Не подгоняйте права рабочей базы под ожидаемые булевы результаты.
Процедура ВыполнитьПример() Экспорт
ОписаниеЗадания = Метаданные.РегламентныеЗадания.Найти("АнализДанныхДляОповещенийКлиентам");
Если ОписаниеЗадания = Неопределено Тогда
ВызватьИсключение "Нет подтверждённого описания задания";
КонецЕсли;
Сообщить(ОписаниеЗадания.Имя = "АнализДанныхДляОповещенийКлиентам");
Сообщить(НЕ ОписаниеЗадания.Использование);
Сообщить(НЕ ОписаниеЗадания.Предопределенное);
Сообщить(ОписаниеЗадания.КоличествоПовторовПриАварийномЗавершении = 3);
Сообщить(ОписаниеЗадания.ИнтервалПовтораПриАварийномЗавершении = 10);
Сообщить(ПустаяСтрока(ОписаниеЗадания.Ключ));
Сообщить(ПустаяСтрока(ОписаниеЗадания.Наименование));
Сообщить(ОписаниеЗадания.Расписание = Неопределено);
Части = СтрРазделить(ОписаниеЗадания.ИмяМетода, ".");
Если Части.Количество() < 2 Тогда
ВызватьИсключение "Имя метода не содержит модуль и процедуру";
КонецЕсли;
ИмяМодуля = Части[Части.Количество() - 2];
ИмяПроцедуры = Части[Части.Количество() - 1];
Сообщить(ИмяМодуля = "РассылкиИОповещенияКлиентам");
Сообщить(ИмяПроцедуры = "АнализДанныхДляОповещенийКлиентам");
Модуль = Метаданные.ОбщиеМодули.Найти(ИмяМодуля);
Если Модуль = Неопределено Тогда
ВызватьИсключение "Не найден модуль метода задания";
КонецЕсли;
Сообщить(Модуль.Сервер);
Сообщить("Исходная процедура требует ВидОповещения. Создание/запуск задания без параметра здесь не выполняется.");
Сообщить(ОписаниеЗадания.Синоним);
Сообщить(ОписаниеЗадания.Комментарий);
Сообщить(ОписаниеЗадания.ПолноеИмя());
Сообщить(ОписаниеЗадания.Представление());
Сообщить(ОписаниеЗадания.ПринадлежностьОбъекта);
Сообщить(ТипЗнч(ОписаниеЗадания.ОбъектРасширяемойКонфигурации));
Сообщить(ОписаниеЗадания.ЕстьИзмененияРасширениямиКонфигурации());
Сообщить(ТипЗнч(ОписаниеЗадания.РасширениеКонфигурации()));
Сообщить(ОписаниеЗадания.Родитель() = Метаданные);
КонецПроцедурыРазбор по шагам
Найти описание задания в Метаданные.РегламентныеЗадания, не в менеджере реальных заданий.
Проверить свойства выгрузки: выключенное использование, непредопределённость, три повтора и интервал 10. Прочитать пустые ключ/наименование.
Расписание метаданных всегда Неопределено по контракту. Чтобы получить расписание реального задания, сначала нужен соответствующий существующий runtime-экземпляр.
Разобрать ИмяМетода, найти серверный модуль. В исходной экспортной процедуре обязателен ВидОповещения: одного имени метода для корректного запуска недостаточно.
Вывести паспорт описания. Регламентные/фоновые задания не создаются и не исполняются, сообщения клиентам не отправляются.
Как проверить результат
Двенадцать фиксированных проверок дают Истина; сведения происхождения диагностические.
Наличие шаблона не говорит о количестве экземпляров и их успешном выполнении. Состояние рабочих заданий этот урок не опрашивает.
Ожидаемый результат
Полный разбор реального описания задания с понятными ограничениями запуска.
На что обратить внимание
Расписание = Неопределено у метаданных не означает отсутствие расписания у реально созданного задания.
Использование шаблона не является доказательством состояния каждого существующего экземпляра.
Не вызывайте процедуру рассылок как учебный тест: она выполняет прикладную работу и требует параметр.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.