https://github.com/autumn-library/autumn-annotation-types
Набор аннотаций ОСени, для удобной инициализации стандартных типов
https://github.com/autumn-library/autumn-annotation-types
autumn hacktoberfest oscript
Last synced: 4 months ago
JSON representation
Набор аннотаций ОСени, для удобной инициализации стандартных типов
- Host: GitHub
- URL: https://github.com/autumn-library/autumn-annotation-types
- Owner: autumn-library
- Created: 2023-03-22T22:02:54.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T17:49:18.000Z (over 1 year ago)
- Last Synced: 2024-10-22T06:08:48.984Z (over 1 year ago)
- Topics: autumn, hacktoberfest, oscript
- Language: 1C Enterprise
- Homepage:
- Size: 21.5 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# autumn-annotation-types - набор аннотаций ОСени, для удобной инициализации стандартных типов.
## Что это и зачем ?
Очень часто приходится писать вот такой код:
```bsl
Перем МойМассив;
&Желудь
Процедура ПриСозданииОбъекта()
МойМассив = Новый Массив;
КонецПроцедуры
```
Мы обозначаем переменные(поля класса), и где-то из конструктора инициализируем значения. Данная библиотека содержит набор аннотаций, которые помогают сократить написание количество кода, и его читаемость. Благодаря этим аннотациям ОСень берет на себя всю работу по инициализации полей.
```bsl
&Массив
Перем МойМассив;
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
```
## Поддерживаемые типы
### Массив
```&Массив(Размер)``` - В поле внедряется новый массив. Параметр ```Размер``` необязательный, позволяет задать размер массива.
Допускается добавление элементов аннотацией ```Элемент(ЗначениеЭлемента)```
Добавление аннотации ```&Фиксированный``` превращает коллекцию в фиксированную
```bsl
&Фиксированный
&Массив
&Элемент("Элемент массива")
Перем ФиксированныйМассив Экспорт;
```
### Соответствие
```&Соответствие``` - В поле внедряется новое соответствие.
Допускается вставка элементов через аннотацию ```&КлючИЗначение("ИмяКлюча", Значение)```
Добавление аннотации ```&Фиксированный``` превращает коллекцию в фиксированную
```bsl
&Соответствие
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированноеСоответствие Экспорт;
```
### Структура
```&Структура(Ключи)``` - В поле внедряется новая структура. Параметр ```Ключи``` необязательный. Строка, содержащая список ключей структуры, разделенные запятой "```,```"
Допускается вставка элементов через аннотацию ```&КлючИЗначение("ИмяКлюча", Значение)```
Добавление аннотации ```&Фиксированный``` превращает коллекцию в фиксированную
```bsl
&Структура
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированнаяСтруктура Экспорт;
```
### ТаблицаЗначений
```&ТаблицаЗначений(Колонки)``` - В поле внедряется новая таблица значений. Параметр ```Колонки``` необязательный. Строка, содержащая список имен колонок, разделенных запятой "```,```"
В конструкторе аннотации можно задать индексы таблицы значений:
```bsl
&ТаблицаЗначений(
Колонки = "Колонка1, Колонка2",
Индекс = "Колонка1, Колонка2",
Индекс = "Колонка1"
)
```
Альтернативный способ добавления колонки, через аннотацию ```&Колонка("ИмяКолонки")```.
Есть возможность добавить строки таблицы через аннотацию ```&СтрокаТаблицы(ИмяКолонки1 = "Значение 1", ИмяКолонки2 = "Еще значение")```.
```bsl
&ТаблицаЗначений
&Колонка("ДеньНедели")
&Колонка("НомерДня")
&СтрокаТаблицы(ДеньНедели = "Понедельник", НомерДня = 1)
&СтрокаТаблицы(ДеньНедели = "Вторник", НомерДня = 2)
Перем ЗаполненнаяТаблица Экспорт;
```
## Подключение и использование
В точке входа вашего приложения подключить библиотеку
```bsl
#Использовать autumn
#Использовать autumn-annotation-types
Поделка = Новый Поделка();
. . .
```
Пример внедрения типов в поля желудя:
```bsl
&Массив
Перем ПустойМассив Экспорт;
&ТаблицаЗначений("Колонка1, Колонка2")
&Колонка("Колонка2")
&Колонка("Колонка3")
Перем ТЗ Экспорт;
&ТаблицаЗначений
&Колонка("ДеньНедели")
&Колонка("НомерДня")
&СтрокаТаблицы(ДеньНедели = "Понедельник", НомерДня = 1)
&СтрокаТаблицы(ДеньНедели = "Вторник", НомерДня = 2)
Перем ЗаполненнаяТаблица Экспорт;
&ТаблицаЗначений
Перем ТЗБезКолонок Экспорт;
&Соответствие
Перем Соответствие Экспорт;
&Соответствие
&КлючИЗначение("Ключ1", 1)
&КлючИЗначение("Ключ2", "2")
Перем ЗаполненноеСоответствие Экспорт;
&Структура("Ключ1, Ключ2")
&КлючИЗначение("Ключ2", 2)
&КлючИЗначение("Ключ3", "3")
Перем СтруктураСКлючами Экспорт;
&Структура
Перем ПустаяСтруктура Экспорт;
Перем МассивСРазмером1 Экспорт;
&Массив(1)
&Элемент("а")
&Элемент(1)
Перем ЗаполненныйМассив Экспорт;
&Фиксированный
&Массив
&Элемент(1)
Перем ФиксированныйМассив Экспорт;
&Структура
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированнаяСтруктура Экспорт;
&Соответствие
&Фиксированный
&КлючИЗначение("Ключ", 1)
Перем ФиксированноеСоответствие Экспорт;
&Желудь
Процедура ПриСозданииОбъекта(&Массив(1) _Массив)
МассивСРазмером1 = _Массив;
КонецПроцедуры
```