Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill autumn --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Autumn?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-autumn)More formats (shields.io, HTML) on the badges page.
---
name: autumn
description: Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.
---
# Autumn (ОСень)
Фреймворк компонентных приложений для OneScript с Dependency Injection и Inversion of Control. Разрешает зависимости конструкторов автоматически: не нужно вручную создавать цепочки объектов и передавать параметры во все точки создания.
## Принцип работы
Объект с конструктором, принимающим параметры (зависимости), регистрируется как компонент («желудь»). Вместо вызова `Новый Класс(зависимость1, зависимость2)` в коде используется `Осень.НайтиЖелудь("ИмяКласса")` — фреймворк сам создаёт зависимости и передаёт их в конструктор.
## Точка входа
```bsl
#Использовать autumn
#Использовать "Каталог/С/Классами/Команд" // путь к папке с классами-компонентами
Поделка = Новый Поделка();
Поделка.ЗапуститьПриложение();
```
Каталог с классами должен содержать классы, помеченные аннотациями Autumn (Желудь, Дуб и т.д.), чтобы они регистрировались в контексте приложения.
## Получение компонента
```bsl
Обновлятор1С = Осень.НайтиЖелудь("Обновлятор1С");
```
Идентификатор совпадает с именем класса или с параметром аннотации `&Желудь("Идентификатор")`.
## Ключевые аннотации
- **&Желудь("Идентификатор")** — класс регистрируется как компонент (желудь). Без параметра используется имя класса. Параметры конструктора разрешаются как зависимости других желудей.
- **&Верховный** — корневой компонент (например, описание приложения). Указывается вместе с &Желудь.
- **&Дуб** — класс-фабрика: не сам является желудем, но в методе с &Завязь возвращает экземпляры других классов (желудей).
- **&Завязь** — метод внутри &Дуб, возвращающий экземпляр класса; используется для регистрации команд/компонентов без аннотаций на целевом классе (например, миграция легаси-кода).
Пример желудя:
```bsl
&Желудь("Обновлятор1С")
Процедура ПриСозданииОбъекта(ПроверяторВерсий, Настройки)
// ПроверяторВерсий и Настройки будут разрешены Autumn и переданы сюда
КонецПроцедуры
```
Пример дуба с завязью:
```bsl
&Дуб
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&Завязь
&КомандаПриложения(Имя = "legacy", Описание = "Легаси команда")
Функция МояЛегасиКоманда() Экспорт
Возврат Новый МояЛегасиКоманда();
КонецФункции
```
## Рекомендации
- Один класс — одна ответственность; зависимости передавать через конструктор.
- Не создавать длинные цепочки вручную — регистрировать классы как желуди и получать их через `Осень.НайтиЖелудь()`.
- Настройки приложения можно вынести в `autumn-properties.json` или в отдельный желудь с интерфейсом настроек.
## Дополнительно
Расширенная справка по аннотациям и конфигурации — [reference.md](reference.md).
Документация: [autumn-library.github.io](https://autumn-library.github.io/).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!