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