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