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