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