Skip to content

Latest commit

 

History

History
177 lines (127 loc) · 7.04 KB

README.MD

File metadata and controls

177 lines (127 loc) · 7.04 KB

autumn-annotation-types - набор аннотаций ОСени, для удобной инициализации стандартных типов.

Что это и зачем ?

Очень часто приходится писать вот такой код:

Перем МойМассив;

&Желудь
Процедура ПриСозданииОбъекта()
    МойМассив = Новый Массив;
КонецПроцедуры

Мы обозначаем переменные(поля класса), и где-то из конструктора инициализируем значения. Данная библиотека содержит набор аннотаций, которые помогают сократить написание количество кода, и его читаемость. Благодаря этим аннотациям ОСень берет на себя всю работу по инициализации полей.

&Массив
Перем МойМассив;

&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры

Поддерживаемые типы

Массив

&Массив(Размер) - В поле внедряется новый массив. Параметр Размер необязательный, позволяет задать размер массива.

Допускается добавление элементов аннотацией Элемент(ЗначениеЭлемента)

Добавление аннотации &Фиксированный превращает коллекцию в фиксированную

&Фиксированный
&Массив
&Элемент("Элемент массива")
Перем ФиксированныйМассив Экспорт;

Соответствие

&Соответствие - В поле внедряется новое соответствие.

Допускается вставка элементов через аннотацию &КлючИЗначение("ИмяКлюча", Значение)

Добавление аннотации &Фиксированный превращает коллекцию в фиксированную

&Соответствие
&Фиксированный
&КлючИЗначение("Ключ", 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 = _Массив;
КонецПроцедуры