Константы

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

В Конфигураторе список констант выглядит следующим образом:

Для каждой константы нужно обязательно указать ее имя и тип данных. Кроме того, желательно указывать синоним, комментарий и перечень подсистем, в которые она входит. Все это делается в окне свойств:

Обратите внимание на свойство «Допустимая длина» для констант строкового типа. Можно задать фиксированную или переменную длину константы. При фиксированной длине константа будет хранить заданное количество символов, а если реальное значение содержит меньше символов, то в конец строки будут добавлены пробелы до заданной длины. При переменной длине строки в базе данных хранится только реальное количество символов.

В конфигурациях на платформе 1С:Предприятия 8.0 для редактирования значений констант рекомендуется создавать отдельную экранную форму, в которой все константы распределены по закладкам и для каждой существует свой элемент управления с понятной надписью и подробным описанием, как указано на следующем рисунке:

Обратите внимание, что приведенная форма констант является общей формой, но с таким же успехом можно было разместить поле для доступа к константе в любой другой форме, так как в 1С:Предприятии 8.0 экранные формы и объекты конфигурации разделены. Для данной экранной формы свойство ТипЗначения установлено в значение КонстантыНабор и установлен флажок «Использовать все константы».

Замечание. По сравнению с предыдущей версией 7.7 в 1С:Предприятии 8.0 больше не существует системной формы для редактирования всех констант единым списком, так как такое решение было признано недостаточно гибким. Нельзя было распределить все константы по группам, или, например, полностью скрыть некоторые константы от пользователя, чтобы он даже не догадывался об их существовании. Если все же, несмотря на эти недостатки, прежняя форма констант вас вполне устраивала, то вполне возможно создать такую же на платформе 8.0.

Обращение к константам из программы на встроенном языке производится очень просто, хотя этот способ и отличается от версии 7.7:

// чтение значения из константы
Название = Константы.НазваниеОрганизации.Получить();
// запись нового значения в константу
Константы.НазваниеОрганизации.Установить(НовоеНазвание);

Обратите внимание на слово Константы (а не Константа, как было в версии 7.7). Через такую конструкцию мы обращаемся к объекту КонстантыМенеджер (заметьте, что применяется множественное число), который позволяет затем обратиться к менеджеру конкретной константы по ее имени.

Если расшифровать приведенный выше пример, то станет более понятна взаимосвязь объектов:

 

//получаем объект для управления списком констант
КонстантыМенеджер = Константы;
 
//получаем объект для управления одной константой
КонстантаМенеджер = КонстантыМенеджер.НазваниеОрганизации;
 
//считываем значение константы из базы данных
Значение - КонстантаМенеджер.Получить();
 
//записываем новое значение константы в базу данных
КонстантаМенеджер.Установить(НовоеЗначение);
 

Как мы увидим дальше, такая схема распространяется на все объекты конфигурации и необходимо ее понимать. Объекты типа КонстантыМенеджер, СправочникиМенеджер, ДокументыМенеджер и аналогичные им предназначены для обращения к списку менеджеров объектов конфигурации. Свойствами этих объектов являются другие объекты типа КонстантаМенеджер, СправочникМенеджер и ДокументМенеджер. В свою очередь эти объекты предназначены для обращения к менеджеру одного объекта конфигурации, например, менеджеру справочника Номенклатура.

Существуют свойства глобального контекста, ссылающиеся на объекты типа КонстантыМенеджер, СправочникиМенеджер, ДокументМенеджер и т.д., они называются односложно: Константы, Справочники, Документы. Это позволяет упростить написание программы и следующие примеры это демонстрируют:

 

Назв = Константы.НазваниеОрганизации.Получить();
СпрСотр = Справочники.Сотрудники;
 
ВсеДолжности = Справочники.Должности.Выбрать();
ДокНакл = Документы.РасходнаяНакладная;
 

Работа с константами производится с помощью нескольких объектов, и необходимо понимать их взаимосвязь, потому что подобная ситуация повторяется почти с каждым объектом конфигурации.

Ниже дано описание объектов для работы с константами:

КонстантыМенеджер

Объект предоставляет доступ к списку констант. Через этот объект можно перебрать все константы с помощью конструкции «Для Каждого» или получить объект КонстантаМенеджер для управления конкретной константой. Кроме того, данный объект позволяет создать объект КонстантыНабор для одновременного чтения и записи сразу нескольких констант.

КонстантаМенеджер

Менеджер константы обеспечивает доступ к конкретной константе. Через него можно прочитать и установить ее значение с помощью методов Получить и Установить.

КонстантыНабор

Через этот объект можно получить доступ сразу к нескольким константам, но необязательно всем существующим в

конфигурации.

Схематично взаимосвязь объектов для работы с константами можно отобразить следующим образом:

Работу с набором констант продемонстрируем на следующем примере:

//создаем набор из двух констант
//обратите внимание, что значений констант в наборе еще нет
Набор = Константы.СоздатьНабор("Руководитель,ИНН");
Набор.Прочитать(); //прочитать из базы сразу две константы
//изменить значение констант в наборе (не в базе)
Набор.Руководитель = "Иванов И.И.";
Набор.ИНН = "1234567890";
Набор.Записать(); //записать в базу сразу две константы

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

Константы — слишком простой объект для полного понимания  объектной модели 1С:Предприятия 8.0. Далее на примере справочников мы рассмотрим новую объектную модель во всей ее полноте. Кабель и провод - кабель nym.