Глобальный контекст.Константы

Свойства · Constants

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

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

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

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

Константы (Constants)

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

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

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

См. также:
КонстантыМенеджер

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

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

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

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

Подготовить комментарий истории собственной константы

ЗаписьИсторииДанных — готовый объект параметров. Само readonly-свойство не заменяется другим объектом.

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

Сервер собственной учебной базы; также толстый клиент или внешнее соединение, если это разрешено указанным API.

Подготовка

  1. Только собственная учебная конфигурация. Все указанные имена сначала создайте в Конфигураторе; объекты рабочей базы не заменяйте. Здесь код не запускается.

  2. Создайте числовую константу УчебнаяСумма с включенной историей данных. Блок серверный; значения константы и версии истории здесь не записываются.

&НаСервереБезКонтекста
Процедура ПодготовитьИсториюУчебнойКонстанты()
    ЗначениеКонстанты = Константы.УчебнаяСумма.СоздатьМенеджерЗначения();
    ЗначениеКонстанты.Прочитать();
    ПараметрыИстории = ЗначениеКонстанты.ЗаписьИсторииДанных;
    ПараметрыИстории.КомментарийВерсии = "Учебная подготовка суммы";
    ЗначениеКонстанты.УстановитьКомментарийВерсииИсторииДанных();
    Сообщить("Комментарий параметров: " + ПараметрыИстории.КомментарийВерсии);
КонецПроцедуры

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

  1. Получите реальный менеджер значения константы.

  2. Измените комментарий в его параметрах истории.

  3. Посмотрите объявленный вызов метода без аргументов.

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

  1. Readonly ЗаписьИсторииДанных не присваивается.

  2. Комментарий показывается из параметров; новая сохраненная версия не объявляется созданной.

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

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

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

  1. Установленная справка объявляет этот метод без параметров, хотя описание говорит о комментарии. Не добавляйте строковый аргумент по аналогии с документом; это ограниченный пример сигнатуры, не подтверждение сохранения версии.

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

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

Показываем Установить и Записать менеджера только внутри собственной отменяемой транзакции. Рабочие настройки не используются.

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

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

Подготовка

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

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

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

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

  5. Здесь выполняется настоящая временная запись в собственную учебную базу. Нужны пустые модули и отсутствие чужой транзакции; откат не отменяет внешние действия обработчиков.

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

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

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

  2. Установить записывает 10 непосредственно в базу внутри начатой транзакции.

  3. Менеджер значения читает 10, меняет его на 20 и Записать сохраняет новую версию внутри той же транзакции.

  4. Намеренно ОтменитьТранзакцию, а не ФиксироватьТранзакцию: обе правки исчезают.

  5. Новый Получить после отката сравниваем с исходным значением; не проверяем устаревшую переменную менеджера.

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

  1. Две проверки Истина внутри транзакции: сначала 10, затем 20.

  2. После завершения сообщение о восстановлении, значение базы точно равно прежнему.

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

Разница между двумя API записи константы и границами транзакции показана на своём учебном лимите.

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

  1. Установить не является присваиванием только в памяти: этот вызов реально записывает константу.

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

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

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

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

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

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

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