
Константа — это прикладной объект, предназначенный для хранения постоянной или условно-постоянной информации. Обычно такая информация не меняется со временем или меняется очень редко. К примеру название организации, ставка НДС.
1. Хранение условно-постоянной информации
При работе с константами нужно учитывать важный нюанс — при изменении значения в константе, старое значение безвозвратно затирается. Для получения прежних значений необходимо использовать Регистр сведений без Измерений.


2. Формы константы
Формы констант хранятся в ветке Общие / Общие формы. Для создания такой формы необходимо выполнить команду Создать форму констант контекстного меню нужной константы или в Палитре свойств выбрать свойство Основная форма.
Создадим общую форму Настройки для всех констант.


В конструкторе формы Настройки на вкладке Реквизиты имеется реквизит НаборКонстант, который содержит все константы созданные в конфигурации. Перетаскиванием их в левую часть конструктора на вкладку Элементы добавим на пользовательскую форму.

Для отображения условно-постоянной информации добавим реквизит ГлавныйБухгалтер с типом ДинамическийСписок. В свойстве ОсновнаяТаблица укажем РегистрСведений.ГлавныйБухгалтер. Разместим реквизит ГлавныйБухгалтер на форме, переместив реквизит на вкладку Элементы.




3. Отключение отображение константы в меню Сервис
Можно отключить отображение константы в меню Сервис. Для этого в Палитре свойств константы нужно убрать флаг в свойстве Использовать стандартные команды.
4. Чтение значения константы из формы
В конструкторе формы на вкладке Команды добавим новую команду ДанныеИзФормы. В свойстве Действие нажмем на иконку в виде лупы.

В появившемся окне Создания обработчика команды выберем первый вариант — Создать на клиенте. Напишем код представленный ниже.

&НаКлиенте
Процедура ДанныеИзФормы(Команда)
ЗначениеКонстанты = НаборКонстант.НазваниеОрганизации;
Сообщить(ЗначениеКонстанты);
КонецПроцедуры
Перенесем команду на вкладку Элементы.

5. Чтение значения константы из базы данных
Добавим новую команду ДанныеИзБазы, размести ее на форме и в обработчике пропишем код представленный ниже.
&НаКлиенте
Процедура ДанныеИзБазы(Команда)
ЗначениеКонстанты = ДанныеИзБазыНаСервере();
ПоказатьОповещениеПользователя(ЗначениеКонстанты);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеИзБазыНаСервере()
ЗначениеКонстанты = Константы.НазваниеОрганизации.Получить();
Возврат (ЗначениеКонстанты);
КонецФункции

Обратите внимание, мы изменили название организации ООО «1000Мелочей» на ООО «Заря», но данные не записывали в базу данных, об этом свидетельствует снежинка рядом с заголовком формы Настройки *. Соответственно при нажатии на кнопку Данные из формы мы получаем значение — ООО «Заря», при нажатии на кнопку Данные из базы получаем значение — ООО «1000Мелочей».
6. Установка значения в константы
Добавим новую команду Установить новое значение с кодом представленным ниже.

&НаКлиенте
Процедура УстановитьНовоеЗначение(Команда)
УстановитьНовоеЗначениеНаСервере();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура УстановитьНовоеЗначениеНаСервере()
Константы.НазваниеОрганизации.Установить("ООО ""1000Мелочей""");
КонецПроцедуры
Важно! На форме новое название не отобразится после нажатия на кнопку Установить новое значение, факта модифицированности (снежинка рядом с заголовком формы Настройки * будет отсутствовать). Форму нужно закрыть без запись и открыть повторно.
- Платформа: 1С:Предприятие 8.3 (8.3.21.1622)