Как добавить новую константу на форму констант в 1С

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

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

Шаг 1. Настройка свойства формы «Состав»

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

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

После включения в состав константа появится в правой панели редактора формы внутри основного реквизита НаборКонстант.

Шаг 2. Размещение элемента на форме и привязка событий

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

  1. Перетащим константу из реквизита формы НаборКонстант в левую панель — в дерево элементов формы.
  2. Убедимся, что созданному полю ввода назначено то же имя, которое имеет сама константа в метаданных.
  3. Для поля ввода перейдем в палитру свойств и создадим обработчик события ПриИзменении.
  4. В модуле формы укажем вызов подключаемой процедуры, отвечающей за сохранение настроек:

&НаКлиенте
Процедура ИмяКонстантыПриИзменении(Элемент)
    Подключаемый_ПриИзмененииРеквизита(Элемент);
КонецПроцедуры

Шаг 3. Настройка прав доступа и ролей

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

Для новой константы необходимо обязательно открыть нужные роли пользователей и выставить права: Чтение, Изменение, Просмотр и Редактирование. Без прав на просмотр и редактирование элемент формы останется скрытым или заблокированным для изменения.

Шаг 4. Использование в функциональных опциях (при необходимости)

Если созданная константа отвечает за включение или отключение определенного функционала программы, свяжем ее с механизмом функциональных опций:

  1. В дереве метаданных найдем или создадим объект Функциональная опция.
  2. В свойстве Хранилище укажем нашу константу.
  3. В составе функциональной опции отметим подсистемы, документы, регистры или реквизиты, видимость которых должна зависеть от значения этой константы.

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

ОбновитьПовторноИспользуемыеЗначения();

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

Если нет необходимости перерабатывать общую форму констант, рассмотрим альтернативные варианты работы с объектом:

  1. Через стандартные функции: в режиме «1С:Предприятие» откроем главное меню > Функции для технического специалиста (или Все функции), перейдем в раздел Константы и откроем значение конкретной константы в отдельном окне.
  2. Программный доступ: прочитать или записать значение константы в коде можно через менеджер констант:
    
    // Чтение значения константы
    Значение = Константы.ИмяКонстанты.Получить();
    
    // Запись нового значения
    Константы.ИмяКонстанты.Установить(НовоеЗначение);
    
  3. Отдельная команда: создадим в конфигураторе общую команду с открытием основной формы константы и выведем ее в нужный раздел командного интерфейса.
← На главную