Тип встроенного языка, порождаемый элементом проекта вида «Перечисление»
После того, как вы добавили в проект перечисление и дали ему имя, создаст один тип встроенного языка. Имя этого типа совпадает с именем вашего перечисления.
Например, если в проекте есть перечисление СпособыУведомления, то будет создан тип СпособыУведомления. В общем случае имя этого типа выглядит следующим образом: имя-перечисления.
Тип «имя-перечисления»
Тип имя-перечисления доступен и на сервере и на клиенте.
Он предоставляет доступ к элементам перечисления, они доступны как значения этого типа (по имени типа и имени элемента). Например, если в проекте есть перечисление СпособыУведомления, которое имеет элементы SMS, Push, EMail и НеУведомлять, то обращение к одному из его элементов будет выглядеть следующим образом:
// Получить элемент перечисления «СпособыУведомления»
пер СпособУведомления = СпособыУведомления.SMS
Модуль элемента перечисления
В проекте модуль, расширяющий тип имя-перечисления, называется модулем элемента перечисления. Он может исполняться и на сервере, и на клиенте.
Вы можете расширить тип имя-перечисления, добавив в этот модуль собственные публичные методы.
Например, заказы имеют фиксированный жизненный цикл и переходят из одного состояния в другое при выполнении определенных условий. Эти состояния содержатся в перечислении СостояниеЗаказов: Открыт, В работе, Выполнен. Алгоритм вы можете описать в методе, который будет возвращать новое состояние заказа на основе анализа его текущего состояния и данных, которые есть в приложении:
@ВПроекте
метод СледующееСостояние(): СостояниеЗаказов
пер ТекущееСостояние = этот
/* Алгоритм, который определяет следующее состояние заказа
на основании текущего состояния заказа и данных приложения */
...
возврат СледующееСостояние
;
Этот метод будет доступен в других модулях:
// Вызов собственного метода перечисления «СостояниеЗаказов»
// СостояниеЗаказа - реквизит, в котором содержится текущее состояние заказа
СостояниеЗаказа = СостояниеЗаказа.СледующееСостояние()