Глава 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 По Всего Цикл
ВидТов = Перечисление.ВидыТоваров.ЗначениеПоНомеру(Ном);
Сообщить(ВидТов.Идентификатор());
КонецЦикла;
Содержание раздела