Константа — это агрегатный тип данных, средство работы с постоянными (условно постоянными) величинами. В константах хранится информация, характеризующая конфигурацию в целом, которая может быть как постоянной, так и изменяться с той или иной периодичностью.
Константы могут быть периодическими или нет (это задается в конфигураторе при их создании). Периодические константы — это константы, значения которых связаны с датой. При изменении значения периодической константы старое значение сохраняется, просто новое значение действует с указанной даты, а старое до указанной даты.
Пример:
* Изначально значение периодической константы Константа.ИмяДиректора было — "Иванов И. И.". В некоторый момент директор сменился.
Константа.ИмяДиректора.Установить('01.05.96', "Петров П.П.");
* Данный оператор устанавливает новое значение периодической константы с даты '01.05.96', но старое значение — "Иванов И. И." сохраняется до этой даты и может быть получено, например, следующей строкой текста программы:
ПрежнДирект = Константа.ИмяДиректора.Получить('01.01.96');
Средства языка предоставляют возможность непосредственного доступа к созданным в конфигураторе названиям констант в любом программном модуле, т. к. константы принадлежат глобальному контексту задачи. Работа с периодическими константами осуществляется при помощи методов Получить и Установить или при помощи специального агрегатного типа данных — Периодический. Работа с непериодическими константами осуществляется непосредственно через их идентификаторы.
Использование непериодических констант в синтаксисе языка аналогично глобальным переменным, т. е. идентификаторы непериодических констант могут размещаться в левой и правой части оператора присваивания, в выражениях, быть параметрами методов, процедур или функций в любом программном модуле.
В качестве имени константы обязательно должно выступать полное имя конкретной константы, как оно объявлено в конфигураторе. Имя константы записывается через точку после ключевого слова Константа, т. е. полное имя константы записывается следующим образом:
Цитата
Константа.<Имя_константы>
,
где <Имя_константы> — название конкретной константы, как оно объявлено в окне «Метеданные» конфигуратора.
Англоязычный синоним ключевого слова Константа —
Const.
Пример:
* Пример работы с непериодическими константами:
Константа.Организация = "АО СПЕЦСТРОЙКОНСЕРВБАНК";
Константа.Адрес = "г.Москва, Вернадского, 523, 25";
Р_Счет = Константа.НашСчет;
// операторы
Если Всего > Константа.МинимальнаяЗарплата Тогда
// операторы
Иначе
// операторы
КонецЕсли;
Методы константНазначитьТипНазначить тип для константы неопределенного типа.
Синтаксис:НазначитьТип(<ИмяКонстанты>, <ИмяТипа>, <Длина>, <Точность>)
Англоязычный синоним:SetType
Описание:Метод НазначитьТип позволяет назначить тип для константы, которой в конфигураторе назначен тип «Неопределенный».
Пример:
Константа.НазначитьТип("ТМЦ", "Справочник.Товары");
УстановитьАтрибутУстановить значение константы по имени идентификатора.
Синтаксис:УстановитьАтрибут(<ИмяРеквизита>, <3начение>)
Англоязычный синоним:SetAttrib
Описание:Метод УстановитьАтрибут позволяет установить значение константы по имени идентификатора, как оно задано в конфигураторе.
Пример:
Константа.УстановитьАтрибут("ФлагЗапретаРедактирования", 1);
ПолучитьАтрибутПолучить значение константы по идентификатору.
Синтаксис:ПолучитьАтрибут(<ИмяАтрибута>)
Англоязычный синоним:GetAttrib
Возвращаемое значение:Значение константы <ИмяАтрибута>.
Описание:Метод ПолучитьАтрибут позволяет получить значение константы по идентификатору, как оно задано в метаданных.
Пример:
ФлЗапрРед = Константа.ПолучитьАтрибут("ФлагЗапретаРедактирования");
Методы периодических константПолучитьПолучить значение периодической константы на дату.
Синтаксис:Получить(<Дата>)
Англоязычный синоним:GetValue
Возвращаемое значение:Значение константы на заданную дату.
Описание:Метод Получить возвращает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.
Пример:
// Константа.РазмерКомпенсации - периодическая
// поэтому получим значение этой константы на дату документа
РазмерДК = Константа.РазмерКомпенсации.Получить(ДатаДок);
Если РазмерДК <> 0 Тогда
Результат = РазмерДК;
Иначе
// операторы
КонецЕсли;
УстановитьУстановить значение периодической константы на дату.
Синтаксис:Установить(<Дата>, <3начение>)
Англоязычный синоним:SetValue
Описание:Метод Установить устанавливает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.
Пример:
Константа.РасчетныйСчет.Установить('01.07.96', "77889001");
Константа.Директор.Установить('01.01.85', "Иванов П.С.")