Создаёт и настраивает компонентные приложения на фреймворке Autumn (ОСень) для OneScript с DI и аннотациями. Использовать при работе с Autumn, Dependency Injection, «желудями», аннотациями &Желудь, &Дуб, &Верховный.
Installs into .claude/skills of the current project.
Are you the author of Autumn?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-autumn)
---
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/).