КонстантыНабор.Записать

Методы · Write

Записывает значения всех входящих в набор констант в базу данных.

Синтаксис

Записать()

Примеры платформы

НаборКонстант.Записать();
Полное описание, параметры и ограничения

КонстантыНабор.Записать (ConstantsSet.Write)

КонстантыНабор (ConstantsSet)

Записать (Write)

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

Синтаксис:
Записать()
Описание:

Записывает значения всех входящих в набор констант в базу данных.

Доступность:

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

Пример:

НаборКонстант.Записать();

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

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

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

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

Записать пару учебных настроек одним набором и отменить

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

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

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

Подготовка

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

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

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

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

  5. Запись временная, только в новой учебной базе с пустыми модулями. В коде нет фиксации транзакции и нет изменения рабочих настроек.

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

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

  1. СоздатьНабор получает ровно два имени, поэтому третьи константы не должны участвовать в записи.

  2. Прочитать сохраняет значения базы в экземпляре, затем задаём два учебных значения.

  3. До начала записи ПроверитьЗаполнение контролирует непустой заголовок.

  4. В собственной транзакции Записать сохраняет набор; оба значения читаем менеджерами констант.

  5. После намеренного отката проверяем оба старых значения. Ошибка по одному из них также считается неполным откатом.

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

  1. Два сравнения внутри транзакции Истина.

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

  3. Другие константы не добавлены в состав набора и не изменялись.

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

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

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

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

  2. Откат транзакции не делает безопасными внешние побочные действия обработчиков, поэтому подготовка с пустыми модулями обязательна.

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

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

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

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

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