Очень часто приходится писать вот такой код:
Перем МойМассив;
&Желудь
Процедура ПриСозданииОбъекта()
МойМассив = Новый Массив;
КонецПроцедуры
Мы обозначаем переменные(поля класса), и где-то из конструктора инициализируем значения. Данная библиотека содержит набор аннотаций, которые помогают сократить написание количество кода, и его читаемость. Благодаря этим аннотациям ОСень берет на себя всю работу по инициализации полей.
&Массив
Перем МойМассив;
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
&Массив(Размер)
- В поле внедряется новый массив. Параметр Размер
необязательный, позволяет задать размер массива.
Допускается добавление элементов аннотацией Элемент(ЗначениеЭлемента)
Добавление аннотации &Фиксированный
превращает коллекцию в фиксированную
&Фиксированный
&Массив
&Элемент("Элемент массива")
Перем ФиксированныйМассив Экспорт;
&Соответствие
- В поле внедряется новое соответствие.
Допускается вставка элементов через аннотацию &КлючИЗначение("ИмяКлюча", Значение)
Добавление аннотации &Фиксированный
превращает коллекцию в фиксированную
&Соответствие
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированноеСоответствие Экспорт;
&Структура(Ключи)
- В поле внедряется новая структура. Параметр Ключи
необязательный. Строка, содержащая список ключей структуры, разделенные запятой ",
"
Допускается вставка элементов через аннотацию &КлючИЗначение("ИмяКлюча", Значение)
Добавление аннотации &Фиксированный
превращает коллекцию в фиксированную
&Структура
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированнаяСтруктура Экспорт;
&ТаблицаЗначений(Колонки)
- В поле внедряется новая таблица значений. Параметр Колонки
необязательный. Строка, содержащая список имен колонок, разделенных запятой ",
"
В конструкторе аннотации можно задать индексы таблицы значений:
&ТаблицаЗначений(
Колонки = "Колонка1, Колонка2",
Индекс = "Колонка1, Колонка2",
Индекс = "Колонка1"
)
Альтернативный способ добавления колонки, через аннотацию &Колонка("ИмяКолонки")
.
Есть возможность добавить строки таблицы через аннотацию &СтрокаТаблицы(ИмяКолонки1 = "Значение 1", ИмяКолонки2 = "Еще значение")
.
&ТаблицаЗначений
&Колонка("ДеньНедели")
&Колонка("НомерДня")
&СтрокаТаблицы(ДеньНедели = "Понедельник", НомерДня = 1)
&СтрокаТаблицы(ДеньНедели = "Вторник", НомерДня = 2)
Перем ЗаполненнаяТаблица Экспорт;
В точке входа вашего приложения подключить библиотеку
#Использовать autumn
#Использовать autumn-annotation-types
Поделка = Новый Поделка();
. . .
Пример внедрения типов в поля желудя:
&Массив
Перем ПустойМассив Экспорт;
&ТаблицаЗначений("Колонка1, Колонка2")
&Колонка("Колонка2")
&Колонка("Колонка3")
Перем ТЗ Экспорт;
&ТаблицаЗначений
&Колонка("ДеньНедели")
&Колонка("НомерДня")
&СтрокаТаблицы(ДеньНедели = "Понедельник", НомерДня = 1)
&СтрокаТаблицы(ДеньНедели = "Вторник", НомерДня = 2)
Перем ЗаполненнаяТаблица Экспорт;
&ТаблицаЗначений
Перем ТЗБезКолонок Экспорт;
&Соответствие
Перем Соответствие Экспорт;
&Соответствие
&КлючИЗначение("Ключ1", 1)
&КлючИЗначение("Ключ2", "2")
Перем ЗаполненноеСоответствие Экспорт;
&Структура("Ключ1, Ключ2")
&КлючИЗначение("Ключ2", 2)
&КлючИЗначение("Ключ3", "3")
Перем СтруктураСКлючами Экспорт;
&Структура
Перем ПустаяСтруктура Экспорт;
Перем МассивСРазмером1 Экспорт;
&Массив(1)
&Элемент("а")
&Элемент(1)
Перем ЗаполненныйМассив Экспорт;
&Фиксированный
&Массив
&Элемент(1)
Перем ФиксированныйМассив Экспорт;
&Структура
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированнаяСтруктура Экспорт;
&Соответствие
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированноеСоответствие Экспорт;
&Желудь
Процедура ПриСозданииОбъекта(&Массив(1) _Массив)
МассивСРазмером1 = _Массив;
КонецПроцедуры