К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как константу добавить в подсистему в 1С

Пошаговая инструкция: как добавить константу в подсистему в конфигураторе 1С, проверить состав, настроить командный интерфейс и права доступа к объекту.

Подсистемы в 1С — это способ логической группировки объектов конфигурации: документов, справочников, регистров, отчётов и констант. Когда разработчик добавляет новую константу (например, «ОсновнаяОрганизация» или «ИспользоватьСклады»), она не попадает в интерфейс пользователя автоматически — её нужно вручную включить в состав нужной подсистемы. Без этого шага константа существует в базе, но не отображается в панели разделов и командном интерфейсе.

Включение константы в подсистему выполняется в конфигураторе и не требует программного кода. Однако у операции есть нюансы: нужно проверить состав подсистемы, настройки командного интерфейса, права ролей и функциональные опции. Ниже разобран полный порядок действий, типичные ошибки и способы проверить результат.

Зачем константу включают в подсистему

Константа в 1С хранит единственное значение для всей информационной базы: флаг, число, строку, ссылку на справочник. Сама по себе константа доступна программно из любого места кода, но для пользователя она «существует» только там, где её показывает интерфейс. Подсистема — основной механизм, который собирает объекты в разделы главного меню.

Если константа не входит ни в одну подсистему, пользователь не найдёт её в панели разделов. Форму константы придётся открывать обходными путями — через общую форму настроек, обработку «Все функции» или программно. Для учебных и дорабатываемых конфигураций это частая причина вопроса «куда пропала настройка».

Дополнительный эффект: подсистемы участвуют в разграничении прав. Роль может включать видимость целой подсистемы, поэтому правильное размещение константы влияет и на то, какие пользователи увидят настройку в своём интерфейсе.

Где находится настройка состава подсистемы

Работа ведётся в конфигураторе: откройте базу в режиме «Конфигуратор» и вызовите дерево конфигурации через меню «Конфигурация → Открыть конфигурацию». Ветка «Общие → Подсистемы» содержит все подсистемы, а ветка «Константы» — все константы верхнего уровня.

Есть два симметричных способа связать объекты. Первый — со стороны константы: правый клик по константе, пункт «Подсистемы…», в открывшемся окне отметить галочками нужные подсистемы. Второй — со стороны подсистемы: правый клик по подсистеме, «Открыть» (или «Состав»), на закладке «Состав» найти константу в списке и поставить отметку. Оба пути изменяют одно и то же свойство — состав подсистемы.

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

Порядок действий
  1. 1
    Откройте базу в конфигураторе и разверните дерево конфигурации
  2. 2
    Найдите нужную константу в ветке «Константы» или создайте новую
  3. 3
    Щёлкните по константе правой кнопкой и выберите «Подсистемы…»
  4. 4
    Отметьте галочками подсистемы, в которых константа должна отображаться
  5. 5
    Нажмите «ОК» и обновите конфигурацию базы данных (F7)
  6. 6
    Запустите режим «Предприятие» и проверьте появление константы в разделе

Добавление константы в подсистему пошагово

Рассмотрим основной сценарий — константа уже создана, требуется включить её в существующую подсистему, например «Настройки» или «Администрирование».

Через свойства константы

В дереве конфигурации раскройте ветку «Константы», найдите объект и вызовите контекстное меню. Пункт «Подсистемы…» открывает окно со списком всех подсистем конфигурации. Отметьте нужные — константа может входить сразу в несколько подсистем, тогда она появится в каждом соответствующем разделе интерфейса.

Через состав подсистемы

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

Проверка командного интерфейса и видимости

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

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

Проверьте результат в режиме «Предприятие»: откройте соответствующий раздел панели разделов. Константа должна открываться командой, значение должно сохраняться и восстанавливаться после перезапуска сеанса.

Контрольные точки

Как проверить результат

Константа в составе подсистемы
Норма

Флажок установлен на закладке «Состав»

Тревожный признак

Флажок сбрасывается или объект не находится в списке

Команда в разделе
Норма

В режиме «Предприятие» команда открывает форму константы

Тревожный признак

Команды нет или ошибка «Недостаточно прав»

Сохранение значения
Норма

Значение записывается и читается после перезахода

Тревожный признак

Значение не сохраняется — проверяйте права и блокировки

Права доступа и роли

Даже корректно включённая в подсистему константа может быть невидима пользователю из-за прав. В конфигураторе откройте ветку «Общие → Роли», выберите роль пользователя и в матрице прав найдите константу. Для просмотра и изменения значения нужны права «Чтение» и «Изменение» (для констант платформа использует этот набор прав, а не «Добавление»).

Кроме прав на сам объект, роль должна давать доступ к подсистеме: в типовых конфигурациях видимость разделов часто управляется отдельными ролями вида «РазделНастройки». Если пользователь видит раздел, но не видит константу — проблема в правах на объект. Если не видит сам раздел — в правах на подсистему или в настройках панели разделов пользователя.

Для проверки запустите «Предприятие» под пользователем с целевой ролью, а не под полными правами: администратор видит всё, и ошибки настройки прав под ним не проявляются.

Функциональные опции и альтернативы

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

Альтернативный подход — не выводить константу отдельной командой, а разместить её поле на общей форме настроек. Так делают в типовых решениях: пользователь открывает одну форму «Настройки», а константы редактируются как поля на ней. В этом случае включение в подсистему нужно для формы настроек, а не для каждой константы.

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

Сравнение вариантов

Прямое включение в подсистему

Подходит для собственных и снятых с поддержки конфигураций; простое, но изменение затрагивает основную конфигурацию

Через общую форму настроек

Подходит, когда констант много; константа не видна отдельной командой, редактируется как поле формы

Через расширение

Подходит для типовых баз на поддержке; ограничение — не все объекты можно заимствовать и изменить

Типичные ошибки и их устранение

Самая частая ошибка — забыть обновить конфигурацию базы данных после изменения состава подсистемы. Симптом: в конфигураторе всё настроено, а в «Предприятии» ничего не появилось. Лечится нажатием F7 и принятием изменений.

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

Третья группа проблем — функциональные опции и настройки панели разделов. Константа может быть скрыта отключённой опцией, а сам раздел — убран пользователем через «Настройки → Настройка навигации». Проверяйте оба места, прежде чем искать ошибку в конфигурации.

Типичные ошибки
01
Изменили состав подсистемы, но не обновили конфигурацию базы данных — в режиме «Предприятие» изменений нет
02
Проверяли только под полными правами — у рядовых пользователей константа недоступна из-за ролей
03
Константа связана с отключённой функциональной опцией и не отображается, хотя в составе подсистемы есть
04
Ожидали отдельную команду, а в типовой конфигурации константы редактируются только через форму настроек

Итог

Добавление константы в подсистему — короткая операция: отметить объект в составе подсистемы через контекстное меню константы или закладку «Состав» подсистемы, затем обновить конфигурацию базы данных. Основной объём работы — проверки: командный интерфейс, роли, функциональные опции и видимость под конкретным пользователем.

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

Итог

Что важно запомнить

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

Частые вопросы

Можно ли добавить константу сразу в несколько подсистем?

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

Почему константа есть в подсистеме, но не видна в меню?

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

Нужно ли писать код, чтобы вывести константу в подсистему?

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

Как добавить константу в подсистему, если конфигурация на поддержке?

Либо включите возможность изменения конфигурации (с частичной потерей автоподдержки), либо используйте расширение: создайте в расширении свою подсистему и заимствуйте константу. Второй способ безопаснее для обновлений.

Как программно проверить, входит ли константа в подсистему?

Через объект метаданных: у объекта «Метаданные.Подсистемы.ИмяПодсистемы» есть коллекция «Состав», в которой можно найти элемент методом «Найти», передав метаданные константы. Это удобно для автоматических проверок конфигурации.

Чем константа отличается от функциональной опции при настройке интерфейса?

Константа хранит значение настройки, а функциональная опция управляет видимостью связанных с ней объектов в интерфейсе. Часто они работают в паре: константа-флаг является хранилищем значения опции, и при её отключении связанные элементы скрываются.