Где в конфигурации 1С задается и переопределяется основная форма констант?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При разработке и доработке прикладных решений на платформе 1С:Предприятие часто возникает задача создания единого интерфейса для редактирования настроек системы. При добавлении новой формы для ветки метаданных Константы разработчики иногда сталкиваются с ситуацией, когда при запуске программы в режиме предприятия продолжает открываться стандартная общая форма (например, ОбщаяФорма.НастройкаПараметровУчета) либо созданная форма не вызывается по умолчанию. Разберем по шагам, где именно в конфигураторе переопределяется основная форма констант и какие нюансы работы с набором констант необходимо учитывать.

Назначение формы в свойствах конфигурации

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

Разберем по шагам порядок действий для переопределения формы:

  1. Откроем дерево метаданных конфигурации.
  2. Выделим корневой элемент (самую верхнюю строчку с именем конфигурации) и нажмем правую кнопку мыши, выбрав пункт «Свойства» (или нажмем клавишу Alt + Enter).
  3. В открывшейся палитре свойств найдем свойство «Основная форма констант».
  4. В поле выбора укажем нужную форму. В качестве формы констант в платформе 1С всегда используется объект типа ОбщаяФорма.

Если мы создаем форму непосредственно через контекстное меню ветки Константы (команда «Создать форму констант»), мастер создания формы предложит установить флаг «Назначить форму основной». Если этот флаг был снят, форма будет создана в ветке общих форм, но в свойствах конфигурации останется прежнее значение.

Настройка реквизита «КонстантыНабор» и свойства «Состав»

Проанализируем частую проблему: форма создана и назначена основной, однако новые добавленные константы не отображаются на форме или недоступны для изменения. Основным реквизитом формы констант выступает объект типа НаборКонстант (как правило, с именем КонстантыНабор).

Важно помнить следующее правило платформы: при создании новой константы в дереве метаданных она не включается в существующие формы автоматически. Чтобы значение можно было редактировать через интерфейс, выполним следующие действия:

  1. Откроем нужную форму констант в конфигураторе.
  2. Перейдем на вкладку «Реквизиты» и выделим реквизит типа НаборКонстант.
  3. В палитре свойств найдем строку «Состав» и нажмем кнопку выбора с многоточием.
  4. В открывшемся окне состава набора отметим флажками те константы, которые должны считываться и записываться данной формой (либо установим признак «Использовать все константы»).
  5. Разместим соответствующие элементы управления на самой форме и свяжем их с реквизитами набора констант через путь к данным (Данные).

Если константа не включена в свойство «Состав», то связанный с ней элемент управления в режиме «1С:Предприятие» будет заблокирован для ввода.

Ограничения платформы и особенности записи данных

Рассмотрим технические тонкости, которые необходимо учитывать при проектировании форм констант:

  1. Работа с типом «ХранилищеЗначения»: константы с типом данных ХранилищеЗначения нельзя связать напрямую с элементами управления через КонстантыНабор. Для чтения и сохранения таких данных (например, логотипов, бинарных файлов или настроек) необходимо использовать обработчики событий формы и программный код.
  2. Транзакционность и права доступа: запись набора констант всегда выполняется системой в единой транзакции. Если у текущего пользователя отсутствует роль с правом на изменение хотя бы одной константы, входящей в состав набора формы, попытка сохранения завершится ошибкой доступа для всей формы целиком.
  3. Открытие через командный интерфейс: в типовых конфигурациях (таких как «Управление торговлей 10.3») пункт главного меню «Настройка параметров учета» может вызывать общую форму напрямую через интерфейс или обработчик команды, минуя вызов основной формы констант. В таком случае необходимо проверить настройки командного интерфейса и меню.

Альтернативный вариант: программная работа с константами

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

Посмотрим на пример чтения значений при открытии формы:


// Считывание значений констант в реквизиты формы
ИспользоватьСкидки = Константы.ИспользоватьСкидки.Получить();
ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();

Посмотрим на пример сохранения значений при нажатии кнопки записи:


// Запись измененных значений констант
Константы.ИспользоватьСкидки.Установить(ИспользоватьСкидки);
Константы.ВалютаРегламентированногоУчета.Установить(ВалютаРегламентированногоУчета);

Такой подход позволяет разделять запись параметров по разным кнопкам и вкладкам, обходить блокировки прав и динамически управлять доступностью полей на форме.

← На главную