Собственные аннотации
OneScript могуч. В отличие от материнской платформы, над любым методом может быть любое количество произвольных аннотаций, у них могут быть именованные и неименованные параметры. Аннотации даже могут быть над Перем
енными модуля и параметрами методов! Как тебе такое, УанЭс Энтерпрайз?
Но с большой силой приходит большая ответственность. Произвольные параметры произвольных аннотаций довольно сложно контролировать и единообразно обрабатывать. Поэтому ОСень с одной стороны немного загоняет Вас в рамки, а с другой - дает возможность проверять корректность использования аннотаций пользователем Вашего приложения или библиотеки. Даже если это Вы сами. Будем честными, больше всего со своим кодом косячим мы сами.
Помимо &Пластилина
, &Желудей
и прочих осенних продуктов, Вы можете описать собственную аннотацию. Для этого нужно создать новый класс, и навесить на него аннотацию &Аннотация
. Здорово, правда? (c)
&Аннотация("МояХитраяАннотация")
Процедура ПриСозданииОбъекта(Значение = "Трррунь", ОбязательныйПараметр)
КонецПроцедуры
По аналогии с &Желудем
, у &Аннотации
можно переопределить имя. Конструктор аннотации может принимать в себя любое количество именованных &Параметров
, в том числе "волшебный" параметр с именем Значение
. Так же для параметра можно указать значение по умолчанию.
Слышали про дог-фудинг?..
Каждая аннотация в ОСени представлена отдельным классом АннотацияИмя с навешенной
&Аннотацией
над конструктором.Да, в ОСени есть аннотация
&Аннотация
, описание которой расположено в классе с именемАннотацияАннотация.os
, над конструктором которого висит аннотация&Аннотация
соЗначение
=Аннотация
. Вот такая вот метафизика.
Если вы хотите разрешить пользователю ваших аннотаций указывать несколько значений для одного и того же параметра, его нужно пометить аннотацией &Повторяемый
. Например, вот так выглядит описание аннотации &Пластилин
:
&Аннотация("Пластилин")
Процедура ПриСозданииОбъекта(Значение = "", Тип = "", &Повторяемый Блестяшка = Неопределено)
КонецПроцедуры