Перечисление — средство работы с элементами данных, список возможных значений которых жестко задан в конфигурации. Например, для перечисления "ТипСотрудника" можно задать возможные значения: "Штатный", "Совместитель".
В отличие от справочника, списки значений в перечислении задаются исключительно в процессе их создания в конфигураторе и при выполнении задачи не могут быть изменены.
Контекст работы с перечислениямиСредства языка предоставляют возможность непосредственного доступа к заданным в конфигураторе значениям перечислений в любом программном модуле (перечисления принадлежат глобальному контексту задачи). В терминах языка перечисления аналогичны системным константам «только для чтения», т. е. идентификаторы перечислений могут размещаться только в правой части оператора присваивания, в выражениях, быть параметрами процедур, функций или методов в любом программном модуле.
В качестве имени перечисления обязательно должно выступать полное имя конкретного вида и значения перечисления, как оно объявлено в конфигураторе. Вид и значение перечисления записывается через точку после ключевого слова Перечисление, т. е. полное имя вида перечисления записывается следующим образом:
Перечисление.<Имя_Переч>.<Значение_Переч>, где <Имя_Переч> — имя вида перечисления, <Значение_Переч> — конкретное значение данного вида перечисления.
Англоязычный синоним ключевого слова Перечисление — Enum.
Пример:
Если Док.Сотрудник.Тип = Перечисление.ТипСотрудника.Штатный Тогда
Льготы = 1;
Иначе
Льготы = 0;
КонецЕсли;
Объект Перечисление является частью глобального контекста программы 1С:Предприятие. Этот объект в качестве своих атрибутов имеет значения объектов конкретных видов перечислений, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту перечисления конкретного вида по его имени.
Перечисление конкретного вида в качестве своих атрибутов имеет конкрет-йьте значения перечислений. Кроме того, этот объект имеет методы КоличествоЗначений, ЗначениеПоНомеру и ЗначениеПоИдентификатору которые позволяют получить доступ к конкретному значению перечисления.
Конкретное значение перечисления имеет методы Вид, ПредставлениеВида, Выбран, ПорядковыйНомер, Идентификатор.
Методы перечисленийПолучитьАтрибутПолучить доступ к объекту перечисления конкретного вида по его имени.
Синтаксис:ПолучитьАтрибут(<ИмяПеречисления>)
Англоязычный синоним:GetAttrib
Возвращаемое значение:Объект перечисления конкретного вида.
Описание:Метод ПолучитьАтрибут позволяет получить доступ к объекту перечисления конкретного вида по его имени, как оно задано в конфигураторе.
Этот метод применяется только к объекту глобального контекста Перечисление.
Пример:
Булево = Перечисление.ПолучитьАтрибут("Булево");
КоличествоЗначенийОпределить общее количество значений в данном виде перечисления.
Синтаксис:КоличествоЗначений()
Англоязычный синоним:Count
Возвращаемое значение:Число общего количества значений в данном виде перечисления.
Описание:Метод КоличествоЗначений применяется к конкретному виду перечисления и позволяет определить общее количество значений в данном виде перечисления.
Пример:
// отобразим все значения перечисления
Всего = Перечисление.ВидыТоваров.КоличествоЗначений();
Пока Ном = 1 По Всего Цикл
Сообщить(Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном));
КонецЦикла;
ЗначениеПоНомеруОпределить значение перечисления, соответствующее номеру позиции в конфигураторе.
Синтаксис:ЗначениеПоНомеру(<Номер>)
Англоязычный синоним:ValueByIndex
Возвращаемое значение:Значение перечисления, соответствующее номеру заданной позиции.
Описание:Метод ЗначениеПоНомеру применяется к конкретному виду перечисления и позволяет определить значение перечисления, соответствующее номеру позиции в конфигураторе.
ЗначениеПоИдентификаторуОпределить значение перечисления, соответствующее идентификатору в конфигураторе.
Синтаксис:ЗначениеПоИдентификатору(<Идентификатор>)
Англоязычный синоним:ValueByIdentifier
Возвращаемое значение:Значение перечисления, соответствующее идентификатору в конфигураторе. Если не найдено — то пустое значение.
Описание:Метод ЗначениеПоИдентификатору применяется к конкретному виду перечисления и позволяет определить значение перечисления, соответствующее идентификатору в конфигураторе.
ВидОпределить название вида перечисления.
Синтаксис:Вид()
Англоязычный синоним:Kind
Возвращаемое значение:Строковое значение, содержащее название вида перечисления.
Описание:Метод Вид позволяет определить название вида перечисления, как оно задано в конфигураторе.
Пример:
// отобразим вид перечисления в строке состояния
Состояние(ИзмерениеТовара.Вид());
ПредставлениеВидаОпределить пользовательское представление вида перечисления.
Синтаксис:ПредставлениеВида()
Англоязычный синоним:KindPresent
Возвращаемое значение:Строковое значение, содержащее пользовательское представление вида перечисления (синоним перечисления или, если он пустой, то идентификатор).
Описание:Метод ПредставлениеВида позволяет получить пользовательское представление вида перечисления, как оно задано в конфигураторе.
Пример:
// отобразим пользовательское представление в строке состояния
Состояние(ИзмерениеТовара.ПредставлениеВида());
ВыбранВозвратить флаг выбора элемента перечисления.
Синтаксис:Выбран()
Англоязычный синоним:Selected
Возвращаемое значение:Числовое значение: 1 — если элемент перечисления выбран (спозиционирован); 0 — если не выбран.
Описание:Метод Выбран возвращает число со значением 1 — если элемент перечисления выбран (спозиционирован), 0 — если элемент перечисления не выбран.
Пример:
// В диалоге формирования некоторого отчета
// ВыбЕдИзмер — реквизит диалога типа «Перечисление.Единицы»
Если ВыбЕдИзмер.Выбран() = 0 Тогда
// Если единица измерений в диалоге не выбрана, то формируем отчет без условий
Заг1 = "По всем единицам измерения.";
Иначе
// если в диалоге выбрана единица измерений
// то формируем отчет только по выбранным единицам
Заг1 = "Отчет по товарам с единицей измерения " + ВыбЕдИзмер;
КонецЕсли;
ПорядковыйНомерОпределить порядковый номер значения в перечеслении.
Синтаксис:ПорядковыйНомер()
Англоязычный синоним:Number
Возвращаемое значение:Строковое значение, содержащее название вида перечисления.
Описание:Метод ПорядковыйНомер определяет порядковый номер значения в перечеслении, как он задан в конфигураторе. Значения перечисления нумеруются с 1.
Пример:
// отобразим порядковый номер значения перечисления
Сообщить(Перечисление.Единицы.Штука.ПорядковыйНомер());