Разработка и Конфигурация · 11 мин
Как константу добавить в подсистему в 1С
Пошаговая инструкция: как добавить константу в подсистему в конфигураторе 1С, проверить состав, настроить командный интерфейс и права доступа к объекту.
Подсистемы в 1С — это способ логической группировки объектов конфигурации: документов, справочников, регистров, отчётов и констант. Когда разработчик добавляет новую константу (например, «ОсновнаяОрганизация» или «ИспользоватьСклады»), она не попадает в интерфейс пользователя автоматически — её нужно вручную включить в состав нужной подсистемы. Без этого шага константа существует в базе, но не отображается в панели разделов и командном интерфейсе.
Включение константы в подсистему выполняется в конфигураторе и не требует программного кода. Однако у операции есть нюансы: нужно проверить состав подсистемы, настройки командного интерфейса, права ролей и функциональные опции. Ниже разобран полный порядок действий, типичные ошибки и способы проверить результат.
Зачем константу включают в подсистему
Константа в 1С хранит единственное значение для всей информационной базы: флаг, число, строку, ссылку на справочник. Сама по себе константа доступна программно из любого места кода, но для пользователя она «существует» только там, где её показывает интерфейс. Подсистема — основной механизм, который собирает объекты в разделы главного меню.
Если константа не входит ни в одну подсистему, пользователь не найдёт её в панели разделов. Форму константы придётся открывать обходными путями — через общую форму настроек, обработку «Все функции» или программно. Для учебных и дорабатываемых конфигураций это частая причина вопроса «куда пропала настройка».
Дополнительный эффект: подсистемы участвуют в разграничении прав. Роль может включать видимость целой подсистемы, поэтому правильное размещение константы влияет и на то, какие пользователи увидят настройку в своём интерфейсе.
Где находится настройка состава подсистемы
Работа ведётся в конфигураторе: откройте базу в режиме «Конфигуратор» и вызовите дерево конфигурации через меню «Конфигурация → Открыть конфигурацию». Ветка «Общие → Подсистемы» содержит все подсистемы, а ветка «Константы» — все константы верхнего уровня.
Есть два симметричных способа связать объекты. Первый — со стороны константы: правый клик по константе, пункт «Подсистемы…», в открывшемся окне отметить галочками нужные подсистемы. Второй — со стороны подсистемы: правый клик по подсистеме, «Открыть» (или «Состав»), на закладке «Состав» найти константу в списке и поставить отметку. Оба пути изменяют одно и то же свойство — состав подсистемы.
Если конфигурация находится на поддержке с запретом изменений, добавление объекта в состав подсистемы может быть заблокировано. В этом случае потребуется включить возможность изменений для корневого элемента конфигурации или выполнять доработку через расширение.
- 1Откройте базу в конфигураторе и разверните дерево конфигурации
- 2Найдите нужную константу в ветке «Константы» или создайте новую
- 3Щёлкните по константе правой кнопкой и выберите «Подсистемы…»
- 4Отметьте галочками подсистемы, в которых константа должна отображаться
- 5Нажмите «ОК» и обновите конфигурацию базы данных (F7)
- 6Запустите режим «Предприятие» и проверьте появление константы в разделе
Добавление константы в подсистему пошагово
Рассмотрим основной сценарий — константа уже создана, требуется включить её в существующую подсистему, например «Настройки» или «Администрирование».
Через свойства константы
В дереве конфигурации раскройте ветку «Константы», найдите объект и вызовите контекстное меню. Пункт «Подсистемы…» открывает окно со списком всех подсистем конфигурации. Отметьте нужные — константа может входить сразу в несколько подсистем, тогда она появится в каждом соответствующем разделе интерфейса.
Через состав подсистемы
Откройте подсистему двойным щелчком или через «Открыть» в контекстном меню. На закладке «Состав» отображается дерево всех объектов конфигурации. Разверните узел «Константы», поставьте флажок напротив нужной и сохраните. Этот способ удобен, когда вы наполняете новую подсистему сразу несколькими объектами.
Проверка командного интерфейса и видимости
Включение в состав подсистемы не всегда означает, что константа появится в меню раздела. В типовых конфигурациях константы часто выводятся не отдельными командами, а через общие формы настроек. В простых и самописных конфигурациях команда открытия формы константы формируется автоматически, но её видимость регулируется в редакторе командного интерфейса подсистемы.
Откройте подсистему и перейдите на закладку «Командный интерфейс». В панели навигации или панели действий найдите команду открытия константы и проверьте флажок видимости. Если команды нет вообще — убедитесь, что у константы задана основная форма или используется стандартная форма константы, и что включён автогенерация команд (свойство «Включать в командный интерфейс» у объекта).
Проверьте результат в режиме «Предприятие»: откройте соответствующий раздел панели разделов. Константа должна открываться командой, значение должно сохраняться и восстанавливаться после перезапуска сеанса.
Как проверить результат
Флажок установлен на закладке «Состав»
Флажок сбрасывается или объект не находится в списке
В режиме «Предприятие» команда открывает форму константы
Команды нет или ошибка «Недостаточно прав»
Значение записывается и читается после перезахода
Значение не сохраняется — проверяйте права и блокировки
Права доступа и роли
Даже корректно включённая в подсистему константа может быть невидима пользователю из-за прав. В конфигураторе откройте ветку «Общие → Роли», выберите роль пользователя и в матрице прав найдите константу. Для просмотра и изменения значения нужны права «Чтение» и «Изменение» (для констант платформа использует этот набор прав, а не «Добавление»).
Кроме прав на сам объект, роль должна давать доступ к подсистеме: в типовых конфигурациях видимость разделов часто управляется отдельными ролями вида «РазделНастройки». Если пользователь видит раздел, но не видит константу — проблема в правах на объект. Если не видит сам раздел — в правах на подсистему или в настройках панели разделов пользователя.
Для проверки запустите «Предприятие» под пользователем с целевой ролью, а не под полными правами: администратор видит всё, и ошибки настройки прав под ним не проявляются.
Функциональные опции и альтернативы
В развитых конфигурациях видимостью констант управляют функциональные опции. Если константа связана с функциональной опцией (свойство объекта), она появится в интерфейсе только когда опция включена. Это удобно для поэтапного внедрения: настройка скрыта, пока соответствующий механизм не активирован.
Альтернативный подход — не выводить константу отдельной командой, а разместить её поле на общей форме настроек. Так делают в типовых решениях: пользователь открывает одну форму «Настройки», а константы редактируются как поля на ней. В этом случае включение в подсистему нужно для формы настроек, а не для каждой константы.
Ещё один вариант для баз на поддержке — расширение конфигурации. Расширение позволяет добавить собственную подсистему и включить в неё заимствованные объекты, не снимая конфигурацию с полной поддержки. Это безопаснее при последующих обновлениях типового решения.
Сравнение вариантов
Подходит для собственных и снятых с поддержки конфигураций; простое, но изменение затрагивает основную конфигурацию
Подходит, когда констант много; константа не видна отдельной командой, редактируется как поле формы
Подходит для типовых баз на поддержке; ограничение — не все объекты можно заимствовать и изменить
Типичные ошибки и их устранение
Самая частая ошибка — забыть обновить конфигурацию базы данных после изменения состава подсистемы. Симптом: в конфигураторе всё настроено, а в «Предприятии» ничего не появилось. Лечится нажатием F7 и принятием изменений.
Вторая ошибка — проверка под полными правами. Разработчик видит константу, а пользователь — нет. Всегда тестируйте интерфейс под учётной записью с тем набором ролей, который будет у реальных пользователей.
Третья группа проблем — функциональные опции и настройки панели разделов. Константа может быть скрыта отключённой опцией, а сам раздел — убран пользователем через «Настройки → Настройка навигации». Проверяйте оба места, прежде чем искать ошибку в конфигурации.
Итог
Добавление константы в подсистему — короткая операция: отметить объект в составе подсистемы через контекстное меню константы или закладку «Состав» подсистемы, затем обновить конфигурацию базы данных. Основной объём работы — проверки: командный интерфейс, роли, функциональные опции и видимость под конкретным пользователем.
Для типовых конфигураций на поддержке предпочтительнее расширение или размещение константы на форме настроек — так вы сохраните возможность автоматического обновления. Для собственных разработок прямое включение в подсистему — стандартный и самый прозрачный путь.
Что важно запомнить
Константа включается в подсистему через состав подсистемы в конфигураторе, после чего обязательно обновление конфигурации базы данных. Видимость для пользователя определяется тремя факторами: составом подсистемы, правами роли и функциональными опциями — проверять результат нужно под целевой ролью.
Частые вопросы
Можно ли добавить константу сразу в несколько подсистем?
Да. В окне выбора подсистем для константы можно отметить любое количество разделов. Константа появится в каждом из них, а храниться значение будет одно — подсистемы влияют только на отображение, не на данные.
Почему константа есть в подсистеме, но не видна в меню?
Проверьте три причины: не обновлена конфигурация базы данных, у роли пользователя нет прав на чтение константы, константа связана с отключённой функциональной опцией. Также убедитесь, что команда открытия включена в командном интерфейсе подсистемы.
Нужно ли писать код, чтобы вывести константу в подсистему?
Нет, включение в состав подсистемы выполняется интерактивно в конфигураторе. Код потребуется только если вы хотите открывать форму константы программно или редактировать её значение из своих обработок.
Как добавить константу в подсистему, если конфигурация на поддержке?
Либо включите возможность изменения конфигурации (с частичной потерей автоподдержки), либо используйте расширение: создайте в расширении свою подсистему и заимствуйте константу. Второй способ безопаснее для обновлений.
Как программно проверить, входит ли константа в подсистему?
Через объект метаданных: у объекта «Метаданные.Подсистемы.ИмяПодсистемы» есть коллекция «Состав», в которой можно найти элемент методом «Найти», передав метаданные константы. Это удобно для автоматических проверок конфигурации.
Чем константа отличается от функциональной опции при настройке интерфейса?
Константа хранит значение настройки, а функциональная опция управляет видимостью связанных с ней объектов в интерфейсе. Часто они работают в паре: константа-флаг является хранилищем значения опции, и при её отключении связанные элементы скрываются.