Глобальный контекст.Перечисления

Свойства · Enums

Тип: ПеречисленияМенеджер. Используется для доступа к определенным в конфигурации перечислениям.

Полное описание, параметры и ограничения

Глобальный контекст.Перечисления (Global context.Enums)

Глобальный контекст (Global context)

Перечисления (Enums)

Доступен, начиная с версии 8.0.

Использование:
Только чтение.
Описание:
Тип: ПеречисленияМенеджер.
Используется для доступа к определенным в конфигурации перечислениям.
Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

См. также:
ПеречисленияМенеджер

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Прочитать значение заполнения, не обещая автоматическое заполнение товара

У ВариантОформленияПродажи задано значение РеализацияТоваровУслуг, но FillFromFillingValue=false. Значение и разрешение его использования — разные настройки.

Где и как запускать

Полный серверный общий модуль учебной копии КА2 Progress. Только схема и собственные значения в памяти.

Подготовка

  1. Используйте отдельную учебную копию КА2 Progress, соответствующую C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Названия и настройки проверены по реальным Catalogs/Номенклатура.xml и Catalogs/ВидыПодарочныхСертификатов.xml.

  2. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своего серверного обработчика учебной команды.

  3. Примеры читают схему и создают значения только в памяти. Они не создают и не записывают товары, не меняют метаданные, не запускают заполнение объекта или перестроение поискового индекса.

Процедура ВыполнитьПример() Экспорт
    Справочник = Метаданные.Справочники.Найти("Номенклатура");
    Если Справочник = Неопределено Тогда
        ВызватьИсключение "В учебной конфигурации отсутствует Справочники.Номенклатура";
    КонецЕсли;
    Описание = Справочник.Реквизиты.Найти("ВариантОформленияПродажи");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "В найденном справочнике нет нужного реквизита учебного урока";
    КонецЕсли;
    ЗначениеПоУмолчанию = Описание.ЗначениеЗаполнения;
    Ожидаемое = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг;
    Сообщить(ЗначениеПоУмолчанию = Ожидаемое);
    Сообщить(Описание.ЗаполнятьИзДанныхЗаполнения = Ложь);
    Сообщить(Описание.Тип.СодержитТип(ТипЗнч(ЗначениеПоУмолчанию)));
    Если Описание.ЗаполнятьИзДанныхЗаполнения Тогда
        Сообщить("Флаг использования данных заполнения включён; реальное заполнение требует отдельного анализа обработчика");
    Иначе
        Сообщить("Наличие значения не означает включённое использование данных заполнения");
    КонецЕсли;
    Сообщить("Объект номенклатуры не создавался и процедура заполнения не запускалась");
КонецПроцедуры

Разбор по шагам

  1. ЗначениеЗаполнения читается как типизированное значение пользовательского перечисления, не как строка РеализацияТоваровУслуг.

  2. Ожидаемое значение существует в XML этой КА2. Оно не объявляется универсальным для УТ, УНФ или пустой учебной конфигурации.

  3. ЗаполнятьИзДанныхЗаполнения читается отдельно и в исходном XML равно false. Не делаем из факта наличия значения вывод о заполнении каждого нового объекта.

  4. СодержитТип проверяет совместимость значения со схемой. Объект не создаётся, Заполнить и Записать не вызываются.

Как проверить результат

  1. Три проверки — Истина в исходной копии и пояснение выключенного флага.

  2. Никакая номенклатура не изменена; подтверждение реального заполнения потребовало бы отдельного теста обработчика на копии.

Ожидаемый результат

Ученик различает объявленный шаблон значения и фактический механизм заполнения объекта.

На что обратить внимание

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

  2. Метаданные не объясняют все программные переопределения заполнения.

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

Прочитать постоянный отбор единиц веса и создать его учебное описание

ВесЕдиницаИзмерения имеет единственный параметр Отбор.ТипИзмеряемойВеличины = Вес. Получаем его из схемы, а не выбираем первую попавшуюся единицу.

Где и как запускать

Полный серверный общий модуль учебной копии КА2 Progress. Только схема и собственные значения в памяти.

Подготовка

  1. Используйте отдельную учебную копию КА2 Progress, соответствующую C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Названия и настройки проверены по реальным Catalogs/Номенклатура.xml и Catalogs/ВидыПодарочныхСертификатов.xml.

  2. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своего серверного обработчика учебной команды.

  3. Примеры читают схему и создают значения только в памяти. Они не создают и не записывают товары, не меняют метаданные, не запускают заполнение объекта или перестроение поискового индекса.

Процедура ВыполнитьПример() Экспорт
    Справочник = Метаданные.Справочники.Найти("Номенклатура");
    Если Справочник = Неопределено Тогда
        ВызватьИсключение "В учебной конфигурации отсутствует Справочники.Номенклатура";
    КонецЕсли;
    Описание = Справочник.Реквизиты.Найти("ВесЕдиницаИзмерения");
    Если Описание = Неопределено Тогда
        ВызватьИсключение "В найденном справочнике нет нужного реквизита учебного урока";
    КонецЕсли;
    Параметры = Описание.ПараметрыВыбора;
    Если Параметры.Количество() <> 1 Тогда
        ВызватьИсключение "Ожидался один документированный параметр выбора единицы веса";
    КонецЕсли;
    Параметр = Параметры[0];
    Если ТипЗнч(Параметр) <> Тип("ПараметрВыбора") Тогда
        ВызватьИсключение "Элемент массива должен иметь тип ПараметрВыбора";
    КонецЕсли;
    Сообщить(Параметр.Имя = "Отбор.ТипИзмеряемойВеличины");
    Сообщить(Параметр.Значение = Перечисления.ТипыИзмеряемыхВеличин.Вес);
    УчебныйПараметр = Новый ПараметрВыбора(Параметр.Имя, Параметр.Значение);
    Сообщить(УчебныйПараметр.Имя = Параметр.Имя);
    Сообщить(УчебныйПараметр.Значение = Параметр.Значение);
    Состав = Новый Массив;
    Состав.Добавить(УчебныйПараметр);
    ГотовыеПараметры = Новый ФиксированныйМассив(Состав);
    Сообщить(ГотовыеПараметры.Количество() = 1);
КонецПроцедуры

Разбор по шагам

  1. ПараметрыВыбора — фиксированный массив. Сначала проверяем ожидаемый состав, затем обращаемся к индексу 0.

  2. Виды веса заданы настоящим пользовательским перечислением ТипыИзмеряемыхВеличин.Вес. Это не число и не строка Вес.

  3. Имя параметра содержит одну точку: Отбор.ТипИзмеряемойВеличины. Такие имена разрешены справкой; произвольная цепочка из трёх точек — не то же самое.

  4. Новый ПараметрВыбора создаёт отдельное неизменяемое описание с именем и значением. Далее готовим собственный фиксированный массив для будущего учебного поля выбора.

  5. Массив не присваивается рабочей форме. Выбор единицы и вычисление коэффициента обмена здесь не выполняются.

Как проверить результат

  1. Пять контрольных Истина: имя, значение, два свойства собственной копии и количество массива.

  2. Исходный фиксированный массив метаданных не очищен и не дополнен.

Ожидаемый результат

Получен типизированный набор постоянного отбора для дальнейшего построения своего поля выбора.

На что обратить внимание

  1. Не используйте Отбор по типу веса как доказательство одинаковых коэффициентов всех единиц.

  2. ПараметрВыбора не допускает Неопределено в качестве значения; здесь передано существующее значение перечисления.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.