Фиксированный набор значений
При разработке приложения часто возникает необходимость иметь фиксированные наборы значений, например, состояния заказов (Открыт, В работе, Выполнен) или виды цен (Оптовые, Розничные и т. д.). Эти значения создаете вы и используете их в определенных местах приложения, например, в списке заказов или в прайс-листе. Пользователи не создают и не изменяют эти значения, но они могут выбирать их при редактировании прайс-листа или для того, чтобы учесть изменение состояния заказа.
В «1С:Шине» для решения этих задач существует вид элементов проекта Перечисление. Перечисление содержит элементы, каждый из которых и является некоторым значением, которое вам необходимо.
Элемент перечисления имеет имя и представление. По имени вы можете обращаться к этому элементу из встроенного языка и использовать этот элемент в проекте. Представление элемента «1С:Шина» покажет пользователю в интерфейсе во время работы приложения. Если вы не зададите представление, то «1С:Шина» будет использовать в интерфейсе приложения имя этого элемента перечисления.
Добавив в проект перечисление вы можете сразу же задать все его элементы. Один из элементов перечисления может быть элементом по умолчанию. Этот элемент «1С:Шина» использует следующим образом. Если в форме есть поле, имеющее тип этого перечисления и для этого поля не задано значение по-умолчанию, то «1С:Шина» подставит в это поле тот элемент перечисления, который указан как элемент по умолчанию в проекте.
Также элемент по умолчанию будет использован во встроенном языке для инициализации переменной с типом этого перечисления. Например, есть перечисление СостояниеЗаказов, которое имеет элемент по умолчанию Открыт. Тогда:
пер Статус: СостояниеЗаказов
// здесть переменная Статус будет иметь значение СостояниеЗаказов.Открыт
Элемент проекта вида Перечисление порождает во встроенном языке один тип, который вы можете использовать для обращения к элементам перечисления (подробнее).
Свойства элемента проекта вида Перечисление вы можете посмотреть здесь.
Кроме создания перечислений в проекте (в виде элементов) вы можете описывать перечисления в модулях, с помощью встроенного языка (подробнее). Разница будет заключаться в том, что типы таких перечислений вы не сможете использовать для указания типа у реквизитов элементов проекта.