Документация » Содержание справочника » Раздел 3. Конфигурируемые агрегатные типы данных » 

Константы. Работа с константами

Константы на платформе 1С:Предприятие 7.7 — это агрегатный тип данных, предназначенный для хранения постоянных (не изменяемых во времени) или условно-постоянных (редко изменяемых во времени) значений. Константа может принимать значения как простых (базовых) типов, так и ссылочных (агрегатных) типов. Примеры констант: «Минимальный размер оплаты труда», «Размер командировочных за день», «Дата начала действия контроля движения по складам» и прочие настройки.

Все константы конфигурируются (создаются и управляются) в дереве метаданных. Физически они хранятся в одной таблице (файле), в которой всего одна строка, и каждая константа представлена колонкой таблицы.

Константы могут быть двух видов:

  • Непериодическими — значение константы одно и не привязано к дате;
  • Периодическими — значений константы несколько и каждое из них связано с датой;

Все константы относятся к глобальному контексту, но работа с константами разных видов существенно отличается.

Непериодические константы

Для доступа к значению непериодической константы необходимо использовать конструкцию вида:

Константа.<Идентификатор>

где Идентификатор — идентификатор константы, как он задан в конфигураторе.

Чтобы присвоить значение константе, достаточно упомянуть ее в левой части от оператора присваивания. Чтобы прочитать значение —  в правой части оператора присваивания, в любом арифметическом или логическом выражении, а также передать в качестве параметров процедур и функций:

//установим значение числовой константы
Константа.МРОТ = 9800;
//прочитаем значение константы
СуммаНачисления = Константа.МРОТ * КоличествоДней;
Будьте внимательны! Если Вы случайно ошибетесь в идентификаторе константы, то обнаружите ошибку только в режиме 1С:Предприятие: Поле агрегатного объекта не обнаружено (МОТ)

В том случае, когда константа имеет неопределенный тип, перед первым присвоением значения необходимо назначить ей тип. Это делается с помощью метода НазначитьТип(). Только после этого константе можно будет присвоить значение указанного типа:

//для примитивных типов
Константа.НазначитьТип("ПараметрЗапуска", "Число", 1);
Константа.ПараметрЗапуска = 1;
//для агрегатных типов
СпрТовары = СоздатьОбъект("Справочник.Товары");
Если СпрТовары.НайтиПоКоду(1) = 1 Тогда
	Константа.НазначитьТип("ПараметрЗапуска", "Справочник.Товары");
	Константа.ПараметрЗапуска = СпрТовары.ТекущийЭлемент();
КонецЕсли;

Периодические константы

Итак, значения периодических констант привязаны к дате. Это значит, что при установке любого значения такой константы, необходимо указать дату. Старое значение константы будет действовать до указанной даты, новое значение — с указанной даты.

Для установки значения периодической константе используется метод Установить(), в качестве параметров которого необходимо указать значение и дату установки значения:

Константа.<Идентификатор>.Установить(Дата, Значение);

Для получения значения периодической константы используется метод Получить(), в качестве параметра которого необходимо указать момент времени, на который необходимо получить значение константы:

Константа.<Идентификатор>.Получить(МоментВремени);

Для получения доступа к истории изменения значений периодической константы служит объект встроенного языка Периодический

Все методы констант

Методы непериодических констант
НазначитьТип() назначает тип константе неопределенного типа
ПолучитьАтрибут() возвращает значение константы по ее идентификатору
УстановитьАтрибут() устанавливает значение константы по ее идентификатору
Методы периодических констант
Получить() возвращает значение периодической константы на дату
Установить() устанавливает значение периодической константы на дату