Загрузить две учебные константы в набор и изменить только копию в памяти

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

СоздатьНабор с явным списком имён ограничивает набор нужными учебными константами. Само изменение набора ещё не сохранение.

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

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

Подготовка

  1. Новая пустая файловая учебная база с именем корня конфигурации Учебная85. Не используйте константы рабочей УТ/КА2/УНФ/БП.

  2. Константы → Добавить: УчебныйЗаголовок (Строка длиной 100, Проверка заполнения Показывать ошибку) и УчебныйЛимит (Число 9,0, неотрицательное, Проверка заполнения Не проверять).

  3. Модули менеджеров значений констант и модули набора констант оставьте пустыми; внешние вызовы и подписки на записи не создавайте. Обновите конфигурацию базы данных.

  4. Вставьте фрагмент в тело серверной ВыполнитьПример() Экспорт. Каждую задачу запускайте отдельно в собственной учебной базе.

Если Метаданные.Константы.Найти("УчебныйЗаголовок") = Неопределено
    Или Метаданные.Константы.Найти("УчебныйЛимит") = Неопределено Тогда
    ВызватьИсключение "Подготовьте две собственные учебные константы";
КонецЕсли;
СтарыйЗаголовок = Константы.УчебныйЗаголовок.Получить();
СтарыйЛимит = Константы.УчебныйЛимит.Получить();
Набор = Константы.СоздатьНабор("УчебныйЗаголовок,УчебныйЛимит");
Набор.Прочитать();
Сообщить(Набор.УчебныйЗаголовок = СтарыйЗаголовок);
Сообщить(Набор.УчебныйЛимит = СтарыйЛимит);
Набор.УчебныйЗаголовок = "Набор в памяти";
Набор.УчебныйЛимит = 10;
Сообщить(Набор.ПроверитьЗаполнение());
Сообщить(Константы.УчебныйЗаголовок.Получить() = СтарыйЗаголовок);
Сообщить(Константы.УчебныйЛимит.Получить() = СтарыйЛимит);
Ключ = Константы.УчебныйЗаголовок.СоздатьКлючЗначения();
Сообщить(Ключ.Пустой());
Сообщить(Ключ.Метаданные().Имя = "УчебныйЗаголовок");

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

  1. Перед созданием набора читаем два сохранённых значения для сравнения.

  2. Явный список имён исключает другие константы даже в собственной учебной конфигурации.

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

  4. ПроверитьЗаполнение выполняется после учебных правок. Записать не вызывается.

  5. СоздатьКлючЗначения без параметра по справке создаёт пустой ключ. Это не создание новой константы и не присваивание её значения.

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

  1. Семь сравнений Истина.

  2. Сохранённые значения остаются прежними, изменён только свой экземпляр набора.

  3. Ключ относится к метаданным УчебныйЗаголовок и создан пустым.

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

Разобраны явный состав набора констант, чтение и изменение в памяти без записи.

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

  1. Для ключей с общими реквизитами-разделителями нужен отдельный учебный пример разделения данных.

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

  3. Проверка заполнения набора не записывает его.

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

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

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

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

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