Перейти к основному содержимому

Фиксированный набор значений

При разработке приложения часто возникает необходимость иметь фиксированные наборы значений, например, состояния заказов (Открыт, В работе, Выполнен) или виды цен (Оптовые, Розничные и т. д.). Эти значения создаете вы и используете их в определенных местах приложения, например, в списке заказов или в прайс-листе. Пользователи не создают и не изменяют эти значения, но они могут выбирать их при редактировании прайс-листа или для того, чтобы учесть изменение состояния заказа.

В «Шине» для решения этих задач существует вид элементов проекта Перечисление. Перечисление содержит элементы, каждый из которых и является некоторым значением, которое вам необходимо.

Элемент перечисления имеет имя и представление. По имени вы можете обращаться к этому элементу из встроенного языка и использовать этот элемент в проекте. Представление элемента «Шина» покажет пользователю в интерфейсе во время работы приложения. Если вы не зададите представление, то «Шина» будет использовать в интерфейсе приложения имя этого элемента перечисления.

Добавив в проект перечисление вы можете сразу же задать все его элементы. Один из элементов перечисления может быть элементом по умолчанию. Этот элемент «Шина» использует следующим образом. Если в форме есть поле, имеющее тип этого перечисления и для этого поля не задано значение по-умолчанию, то «Шина» подставит в это поле тот элемент перечисления, который указан как элемент по умолчанию в проекте.

Также элемент по умолчанию будет использован во встроенном языке для инициализации переменной с типом этого перечисления. Например, есть перечисление СостояниеЗаказов, которое имеет элемент по умолчанию Открыт. Тогда:

пер Статус: СостояниеЗаказов
// здесь переменная Статус будет иметь значение СостояниеЗаказов.Открыт

Элемент проекта вида Перечисление порождает во встроенном языке один тип, который вы можете использовать для обращения к элементам перечисления (подробнее).

Свойства элемента проекта вида Перечисление вы можете посмотреть здесь.

Кроме создания перечислений в проекте (в виде элементов) вы можете описывать перечисления в модулях, с помощью встроенного языка (подробнее). Разница будет заключаться в том, что типы таких перечислений вы не сможете использовать для указания типа у реквизитов элементов проекта.