Объяснить поведение собственного справочника по его метаданным: ОбновлениеПредопределенныхДанных

Учебные задачи

Настройка читается у конкретного подготовленного объекта. Соответствие связывает значения перечисления с их значением для разработчика.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В отдельной учебной конфигурации создайте неиерархический справочник УчебныеТовары: строковый код длиной 10 с автонумерацией, наименование длиной 100.

  2. Добавьте реквизиты Цена (Число 15.2) и СнятСПродажи (Булево). Для Цена не включайте автоматический запрет отрицательного знака: в примере его проверяет код.

  3. Откройте Справочники → УчебныеТовары → Модуль объекта. Обработчики размещаются на уровне модуля, не внутри команды формы. Обновите только учебную базу и проверяйте её элементы.

ОписаниеОбъекта = Метаданные.Справочники.УчебныеТовары;
ТекущееЗначение = ОписаниеОбъекта.ОбновлениеПредопределенныхДанных;
Пояснения = Новый Соответствие;
Пояснения.Вставить(Метаданные.СвойстваОбъектов.ОбновлениеПредопределенныхДанных.ОбновлятьАвтоматически, "При реструктуризации информационной базы будет выполняться автоматическое создание предопределенных элементов и обновление существующих значений.");
Пояснения.Вставить(Метаданные.СвойстваОбъектов.ОбновлениеПредопределенныхДанных.Авто, "Фактическое значение вычисляется автоматически. Для главного узла информационной базы - значение будет равно ОбновлятьАвтоматически, для периферийного узла информационной базы будет равно НеОбновлятьАвтоматически.");
Пояснения.Вставить(Метаданные.СвойстваОбъектов.ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически, "При реструктуризации информационной базы не будет выполняться автоматическое создание новых предопределенных элементов и обновление их значений.");
Пояснение = Пояснения.Получить(ТекущееЗначение);
Сообщить("ОбновлениеПредопределенныхДанных: " + Строка(ТекущееЗначение));
Если Пояснение <> Неопределено Тогда
    Сообщить(Пояснение);
Иначе
    Сообщить("Значение относится к другой группе вариантов этого свойства");
КонецЕсли;

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

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

  2. Прочитайте ОбновлениеПредопределенныхДанных; код не присваивает новое значение свойству метаданных.

  3. Найдите пояснение по фактическому значению. В большом перечислении этот урок показывает одну группу вариантов.

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

  1. Первая строка содержит фактическое значение свойства ОбновлениеПредопределенныхДанных, совпадающее с настройкой в конфигураторе.

  2. Если значение входит в эту группу, показано его пояснение; иначе показано сообщение о другой группе.

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

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

Составлено понятное пояснение к реальному значению настройки без изменения конфигурации.

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

  1. Эта диагностика не заменяет прикладную реализацию проведения, поиска, обмена или кэширования.

  2. ОписаниеОбъекта — метаданные, а не элемент справочника, документ или экземпляр формы.

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

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

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

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

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