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