d9e5a92d

Глава 11 Работа с Перечислениями

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

В отличие от справочника, списки значений в перечислении задаются ис­ключительно в процессе их создания в конфигураторе и при выполнении зада­чи не могут быть изменены.

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

В качестве имени перечисления обязательно должно выступать полное имя конкретного вида и значения перечисления, как оно объявлено в конфигурато­ре. Вид и значение перечисления записывается через точку после ключевого слова Перечисление, т. е. полное имя вида перечисления записывается сле­дующим образом:

Перечисление.Имя_Переч.Значение_Переч,

где Имя_Переч — имя вида перечисления, Значение_Переч — кон­кретное значение данного вида перечисления.

Англоязычный синоним ключевого слова Перечисление — Enum.

Пример:

Если Док.Сотрудник.Тип = Перечисление.ТипСотрудника.Штатный Тогда

   Льготы = 1;

Иначе

   Льготы = 0;

КонецЕсли;

Объект Перечисление является частью глобального контекста программы 1С:Предприятие. Этот объект в качестве своих атрибутов имеет значения объ­ектов конкретных видов перечислений, заданных в конфигурации. Кроме того, этот объект имеет метод ПолучитьАтрибут, который позволяет получить доступ к объекту перечисления конкретного вида по его имени.

Перечисление конкретного вида в качестве своих атрибутов имеет конкрет-йьте значения перечислений. Кроме того, этот объект имеет методы КоличествоЗначений, ЗначениеПоНомеру и ЗначениеПоИдентификатору которые позволяют получить доступ к конкретному значению перечисления.

Конкретное значение перечисления имеет методы Вид, ПредставлениеВида, Выбран, ПорядковыйНомер, Идентификатор.

Методы перечислений

ПолучитьАтрибут

Получить доступ к объекту перечисления конкретного вида по его имени.

Синтаксис:

ПолучитьАтрибут(ИмяПеречисления)

Англоязычный синоним:

GetAttrib

Параметры:

ИмяПеречисления Строковое выражение, содержащее имя вида пе­речисления, как оно задано в конфигураторе.
Возвращаемое значение:

Объект перечисления конкретного вида.

Описание:

Метод ПолучитьАтрибут позволяет получить доступ к объекту перечисле­ния конкретного вида по его имени, как оно задано в конфигураторе.

Этот метод применяется только к объекту глобального контекста Перечисление.

Пример:

Булево = Перечисление.ПолучитьАтрибут(Булево);

КоличествоЗначений

Определить общее количество значений в данном виде перечисления.

Синтаксис:

КоличествоЗначений()

Англоязычный синоним:

Count

Возвращаемое значение:

Число общего количества значений в данном виде перечисления.

Описание:

Метод КоличествоЗначений применяется к конкретному виду перечисле­ния и позволяет определить общее количество значений в данном виде пере­числения.

Пример:

// отобразим все значения перечисления

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

   Сообщить(Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном));

КонецЦикла;

ЗначениеПоНомеру

Определить значение перечисления, соответствующее номеру пози­ции в конфигураторе.

Синтаксис:

ЗначениеПоНомеру(Номер)

Англоязычный синоним:

ValueByIndex

Параметры:

Номер Числовое выражение. Номер позиции значения перечисления, заданный в конфигураторе.
Возвращаемое значение:

Значение перечисления, соответствующее номеру заданной позиции.

Описание:

Метод ЗначениеПоНомеру применяется к конкретному виду перечисления и позволяет определить значение перечисления, соответствующее номеру пози­ции в конфигураторе.

Пример:

См. предыдущий пример.

ЗначениеПоИдентификатору

Определить значение перечисления, соответствующее идентификато­ру в конфигураторе.

Синтаксис:

ЗначениеПоИдентификатору(Идентификатор)

Англоязычный синоним:

ValueByIdentifier

Параметры:

Идeнтификaтop Строковое выражение. Идентификатор пере­числения, заданный в конфигураторе.
Возвращаемое значение:

Значение перечисления, соответствующее идентификатору в конфигураторе. Если не найдено — то пустое значение.

Описание:

Метод ЗначениеПоИдентификатору применяется к конкретному виду пе­речисления и позволяет определить значение перечисления, соответствующее идентификатору в конфигураторе.

Пример:

См. предыдущий пример.

Вид

Определить название вида перечисления.

Синтаксис:

Вид()

Англоязычный синоним:

Kind

Возвращаемое значение:

Строковое значение, содержащее название вида перечисления.

Описание:

Метод Вид позволяет определить название вида перечисления, как оно за­дано в конфигураторе.

Пример:

// отобразим вид перечисления в строке состояния

Состояние(ИзмерениеТовара.Вид());

ПредставлениеВида

Определить пользовательское представление вида перечисления.

Синтаксис:

ПредставлениеВида()

Англоязычный синоним:

KindPresent

Возвращаемое значение:

Строковое значение, содержащее пользовательское представление вида пе­речисления (синоним перечисления или, если он пустой, то идентификатор).

Описание:

Метод ПредставлениеВида позволяет получить пользовательское пред­ставление вида перечисления, как оно задано в конфигураторе.

Пример:

// отобразим пользовательское представление в строке состояния

Состояние(ИзмерениеТовара.ПредставлениеВида());

Выбран

Возвратить флаг выбора элемента перечисления.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Числовое значение: 1 — если элемент перечисления выбран (спозициониро­ван); 0 — если не выбран.

Описание:

Метод Выбран возвращает число со значением 1 — если элемент перечис­ления выбран (спозиционирован), 0 — если элемент перечисления не выбран.

Пример:

// В диалоге формирования некоторого отчета

// ВыбЕдИзмер — реквизит диалога типа «Перечисление.Единицы»

Если ВыбЕдИзмер.Выбран() = 0 Тогда

   // Если единица измерений в диалоге не выбрана, то формируем отчет без условий

   Заг1 = По всем единицам измерения.;

Иначе

   // если в диалоге выбрана единица измерений

   // то формируем отчет только по выбранным единицам

   Заг1 = Отчет по товарам с единицей измерения + ВыбЕдИзмер;

КонецЕсли;

ПорядковыйНомер

Определить порядковый номер значения в перечеслении.

Синтаксис:

ПорядковыйНомер()

Англоязычный синоним:

Number

Возвращаемое значение:

Строковое значение, содержащее название вида перечисления.

Описание:

Метод ПорядковыйНомер определяет порядковый номер значения в пере­чеслении, как он задан в конфигураторе. Значения перечисления нумеруются с 1.

Пример:

// отобразим порядковый номер значения перечисления

Сообщить(Перечисление.Единицы.Штука.ПорядковыйНомер());

Идентификатор

Возвращает строку — идентификатор значения перечисления.

Синтаксис:

Идентификатор()

Англоязычный синоним:

Identifier

Возвращаемое значение:

Строковое значение — идентификатор значения перечисления как он задан в метаданных.

Описание:

Метод Идентификатор возвращает строку — идентификатор значения пере­числения как он задан в метаданных.

Пример:

// отобразим все идентификаторы перечисления

Всего = Перечисление.ВидыТоваров.КоличествоЗначений();

Пока Ном = 1 По Всего Цикл

   ВидТов = Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном);

   Сообщить(ВидТов.Идентификатор());

КонецЦикла;


Содержание раздела