<< All versions

Skill v1.0.0

currentAutomated scan100/100
korolevpavel/xbsl-ai-skills/xbsl-scheduled-task
──Details
PublishedOctober 26, 2026 at 09:11 AM
Content Hashsha256:530d7810457ea40d...
Git SHA73524afa62f9
──Files
Files (1 file, 6.3 KB)
SKILL.md6.3 KBactive
SKILL.md · 120 lines · 6.3 KB

version: "1.0.0" name: xbsl-scheduled-task description: > Use when пользователь просит создать или изменить запланированное задание 1С:Предприятие.Элемент (XBSL): ЗапланированноеЗадание, scheduled task, расписание, ежедневный запуск, Обработчик().


Создание запланированного задания XBSL

Всегда создавай пару артефактов одного имени: <Имя>.yaml и <Имя>.xbsl. Перед созданием .xbsl прочитай docs/xbsl-spec.md. Перед генерацией прочитай references/ЗапланированноеЗадание.md.

Шаг 1: Собери параметры

Определи из запроса:

ПараметрОбязательныйДефолт
ИмяДаНет
ЗапуститьВДаНет
ПодсистемаНетВыбрать по правилам ниже
ОбластьВидимостиНетВПодсистеме
ПредопределенноеЗаданиеНетЗапланироватьПриОбновленииПроекта
ОписаниеНетНе добавлять

Если имени или времени запуска нет, уточни их у пользователя. В YAML записывай время литералом формата HH:MM без кавычек, например 08:00.

Шаг 2: Выбери проект и подсистему

Используй xbsl-explore для выбора проекта. Если проектов нет, предложи сначала создать проект через xbsl-init. Если найдено несколько подходящих проектов, уточни целевой.

После выбора проекта используй только его projects[].subsystems и применяй правила строго по порядку:

  1. Если Подсистема указана, выбери точное совпадение внутри проекта независимо

от числа других подсистем. Если совпадения нет, остановись и предложи создать подсистему через xbsl-subsystem-add.

  1. Если Подсистема не указана и подсистема одна, выбери ее автоматически.
  2. Если Подсистема не указана и найдено несколько подсистем, уточни целевую у

пользователя; не используй suggested_path как неявный выбор.

  1. Если Подсистема не указана и подсистем нет, остановись и предложи создать

подсистему через xbsl-subsystem-add.

Проверь, что выбранный subsystem_path принадлежит выбранному проекту и содержит Подсистема.yaml. Не размещай задание в корне проекта. После выбора подсистемы проверяй имя только в ее projects[].subsystems[].objects. Не перенаправляй файлы по глобальным conflict или suggested_path, полученным для другой подсистемы.

Целевые файлы:

text
{subsystem_path}/{Имя}.yaml
{subsystem_path}/{Имя}.xbsl

Шаг 3: Сгенерируй UUID

Используй xbsl-uuid и запроси один UUID с дефисами для поля Ид объекта. Не используй счетчики, повторяющиеся паттерны или заранее выбранные значения.

Шаг 4: Сформируй YAML

Минимальный ежедневный вариант:

yaml
ВидЭлемента: ЗапланированноеЗадание
Ид: <UUID>
Имя: <Имя>
ОбластьВидимости: ВПодсистеме
ПредопределенноеЗадание: ЗапланироватьПриОбновленииПроекта
Расписание:
-
Вид: Ежедневно
ЗапуститьВ: 08:00
ПериодПовтораДней: 1

Не добавляй поле обработчика в YAML. Связь с обработчиком задается companion модулем того же имени.

Шаг 5: Сформируй module companion

Создай <Имя>.xbsl:

xbsl
@Обработчик
метод Обработчик()
;

Добавляй бизнес-логику внутрь Обработчик() только если пользователь описал конкретное действие задания. Сигнатуру не меняй: метод без параметров.

Шаг 6: Безопасно запиши файлы

Сначала собери полный ожидаемый текст обоих файлов.

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

объясни конфликт; не перезаписывай без явного решения пользователя.

Шаг 7: Проверь результат

Запусти доступный валидатор проекта для созданного YAML. Минимальная проверка перед ответом пользователю:

  • ВидЭлемента равен ЗапланированноеЗадание.
  • YAML и .xbsl лежат рядом в выбранной подсистеме и имеют одно имя.
  • Родительский каталог обоих файлов содержит Подсистема.yaml.
  • В .xbsl есть @Обработчик и метод Обработчик() без параметров.
  • В YAML нет поля, которое задает обработчик.
All versions