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