Получает индекс перечисления в списке перечислений.
Синтаксис
Индекс(<ЗначениеПеречисления>)Полное описание, параметры и ограничения
ПеречислениеМенеджер.<Имя перечисления>.Индекс (EnumManager.<Enumeration name>.IndexOf)
ПеречислениеМенеджер.<Имя перечисления> (EnumManager.<Enumeration name>)
Индекс (IndexOf)
Доступен, начиная с версии 8.0.
Синтаксис:
Индекс(<ЗначениеПеречисления>)
Параметры:
<ЗначениеПеречисления> (обязательный)
Тип: ПеречислениеСсылка.<Имя перечисления>.
Ссылка на значение перечисления, положение которого определяет данный метод. Если переданный параметр не является ссылкой на значение перечисления или значение принадлежит другому перечислению, генерируется исключение.
Возвращаемое значение:
Тип: Число.
Индекс указанного элемента в коллекции. Если не найдено, то возвращается -1.
Описание:
Получает индекс перечисления в списке перечислений.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Перебрать учебные статусы и отличить значение от его позиции
Перечисление хранит значения метаданных, а не произвольные строки. Пустая ссылка — отдельное состояние, не Черновик.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу с именем корня конфигурации Учебная85. Не меняйте рабочие конфигурации ради этого примера.
Перечисления → Добавить: УчебныйСтатус, синоним Учебный статус. Значения в порядке Черновик, Готов, Отменен; синонимы соответственно Черновик, Готов к проверке, Отменён.
Модуль менеджера оставьте пустым, формы/макеты не добавляйте. Обновите конфигурацию базы данных.
Код без директив вставляется в тело ВыполнитьПример() Экспорт серверного общего модуля УчебныеЗадачи. Полный модуль формы вставляется отдельно по подготовке формы.
Если Метаданные.Перечисления.Найти("УчебныйСтатус") = Неопределено Тогда
ВызватьИсключение "Подготовьте собственное перечисление УчебныйСтатус";
КонецЕсли;
Менеджер = Перечисления.УчебныйСтатус;
Сообщить(Менеджер.Количество() = 3);
Готов = Менеджер.Готов;
Сообщить(Менеджер.Индекс(Готов) = 1);
Сообщить(Менеджер.Получить(1) = Готов);
Сообщить(Не Готов.Пустая());
Сообщить(Менеджер.ПустаяСсылка().Пустая());
Сообщить(Готов.Метаданные().Имя = "УчебныйСтатус");
Для Каждого Значение Из Менеджер Цикл
Сообщить("Позиция " + Строка(Менеджер.Индекс(Значение)) + ": " + Строка(Значение));
КонецЦикла;
Сообщить(Готов = Перечисления.УчебныйСтатус.Готов);Разбор по шагам
Количество/Получить/Индекс работают с порядком значений, заданным в Конфигураторе.
Индекс начинается с нуля, поэтому Готов в подготовленном порядке имеет позицию 1.
Строка(Готов) показывает представление Готов к проверке, а само значение имеет тип ПеречислениеСсылка.УчебныйСтатус.
ПустаяСсылка не равна автоматически Черновику. Проверять заполнение нужно через Пустая.
Сравниваем типизированные значения перечисления, не строки их изменяемых синонимов.
Как проверить результат
Все семь булевых проверок Истина.
Выводятся три позиции и синонимы в порядке подготовки.
В рабочих документах и регистрах ничего не меняется.
Ожидаемый результат
Показаны реальные значения перечисления, их позиции и пустое состояние.
На что обратить внимание
Позиция 1 может измениться при изменении порядка метаданных. Не храните индекс как долговременный внешний код.
Синоним можно перевести/переименовать, поэтому сравнение Строка(Статус) = "Готов к проверке" хрупкое.
УчебныйСтатус существует только в специально созданной схеме.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Различить значение перечисления и описание значения в метаданных
Сравниваем первый элемент АмортизационныеГруппы в схеме и значение через менеджер. Порядковый индекс не используем как внешний код налоговой группы.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Описание = Метаданные.Перечисления.Найти("АмортизационныеГруппы");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Перечисления.АмортизационныеГруппы";
КонецЕсли;
Если Описание.ЗначенияПеречисления.Количество() = 0 Тогда
ВызватьИсключение "В учебном перечислении нет значений";
КонецЕсли;
Менеджер = Перечисления.АмортизационныеГруппы;
ОписаниеЗначения = Описание.ЗначенияПеречисления.Получить(0);
Значение = Менеджер.Получить(0);
Сообщить("Имя схемы: " + ОписаниеЗначения.Имя);
Сообщить("Подпись схемы: " + ОписаниеЗначения.Синоним);
Сообщить("Представление значения: " + Строка(Значение));
Сообщить(Менеджер.Индекс(Значение) = 0);
Сообщить(Менеджер.Количество() = Описание.ЗначенияПеречисления.Количество());
Сообщить(Значение <> Менеджер.ПустаяСсылка());Разбор по шагам
Метаданные возвращает описания значений, менеджер — значения перечисления прикладного языка.
До индекса 0 проверяем количество.
Имя схемы пригодно для программного сопоставления; Синоним и Строка значения предназначены для человека.
ПустаяСсылка не равна первому реальному значению. Никаких ставок, налоговых расчётов или записей здесь нет.
Как проверить результат
В XML первое имя — ПерваяГруппа; проверки индекса, количества и непустого значения дают Истина.
Сверьте полный список в Конфигураторе; не интерпретируйте индекс 0 как номер амортизационной группы.
Ожидаемый результат
Разделены описание схемы, реальное значение и пустая ссылка.
На что обратить внимание
Порядок может измениться в другом релизе; для интеграции нужно явное сопоставление, а не сохранение индекса.
Пример не является инструкцией по налоговой классификации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.