Функциональные опции в 1С: где найти, включить и проверить
Содержание
Функциональные опции — это механизм платформы 1С 8.3, который показывает или прячет в интерфейсе целые блоки программы: документы, отчёты, реквизиты, колонки и команды. Если в базе не ведётся учёт по нескольким складам, соответствующие поля и документы просто не отображаются — за это отвечает выключенная функциональная опция.
В типовых конфигурациях пользователь управляет опциями не по их техническим именам, а через форму настроек. В «1С:Бухгалтерии 3.0» это Главное → Функциональность, в «1С:Управление торговлей 11» — НСИ и администрирование → Настройки НСИ и разделов. Поставили галку — функционал появился, сняли — скрылся. Из встроенного языка значение опции читают методом ПолучитьФункциональнуюОпцию.
Что скрывают и показывают функциональные опции
Функциональная опция — это объект конфигурации, который хранит одно значение (чаще всего «да/нет») и связан со списком метаданных. Пока опция включена, связанные с ней объекты видны в интерфейсе; выключили — платформа убирает их из меню, панелей и форм.
Зачем это нужно: одна и та же типовая конфигурация должна подходить и небольшому ИП на одной организации, и холдингу с десятком складов, партионным учётом и производством. Разработчик не делает под каждого отдельную версию — он прячет лишнее за опциями, а пользователь включает только то, что ему нужно. Интерфейс не захламляется.
Что важно понять сразу:
- 🔒 Опция управляет видимостью, а не правами. За то, кто и что может делать, отвечают роли пользователя.
- 🗂 Отключение опции не удаляет данные. Введённые документы остаются в базе, просто пропадают из стандартного интерфейса. Включите опцию обратно — всё вернётся.
- ⚙️ Опция действует на всю информационную базу, а не на конкретного пользователя (за одним исключением — параметризованные опции, о них ниже).
Отсюда простое правило: если у коллеги в меню есть документ, которого нет у вас, а права одинаковые, — ищите разницу в настройке функциональности, а не в опциях конкретного пользователя.
Разберём на примере. В «Бухгалтерии» есть настройка «Учёт по нескольким организациям». Пока она выключена, в документах нет поля «Организация», в списках нет колонки с организацией, а отчёты не предлагают отбор по ней — программа считает, что фирма одна. Включили — поле «Организация» появляется в накладных, платёжках, в шапке большинства форм. Ни одного документа при этом не создалось и не удалилось: платформа просто перестроила видимость под новую опцию.
Где найти настройки функциональности в типовых конфигурациях
Пути отличаются по конфигурациям, но логика одна: это раздел администрирования или настроек.
| Конфигурация | Где включается функционал |
|---|---|
| 1С:Бухгалтерия 3.0 | Главное → Функциональность |
| 1С:Зарплата и управление персоналом 3.1 | Настройка → разделы «Кадровый учёт», «Расчёт зарплаты» и др. |
| 1С:Управление торговлей 11 | НСИ и администрирование → Настройки НСИ и разделов |
| 1С:Комплексная автоматизация, ERP | НСИ и администрирование → Настройки НСИ и разделов |
В «Бухгалтерии» форма называется «Функциональность программы» и предлагает три режима: Основная (минимум), Выборочная (вы сами отмечаете галки на вкладках «Банк и касса», «Торговля», «Запасы», «ОС и НМА», «Производство») и Полная (включено всё).
В «Управлении торговлей» и ERP настройки разбиты по подразделам — «Продажи», «Закупки», «Склад и доставка», «Казначейство» и так далее, внутри каждого свой набор флажков.
На уровне разработчика сами объекты лежат в конфигураторе: ветка Общие → Функциональные опции. Рядом — Общие → Параметры функциональных опций. Открыв конкретную опцию, на закладке «Состав» видно, какие именно объекты метаданных она показывает или прячет. Это ключ к диагностике — к нему вернёмся ниже.
Как включить или отключить функционал
Порядок одинаковый для любой типовой конфигурации:
- Откройте форму настройки функциональности (пути — в таблице выше).
- Найдите нужный блок. В «Бухгалтерии» переключитесь на режим «Выборочная» или «Полная», затем на нужную вкладку.
- Установите или снимите флажок напротив возможности (например, «Учёт по нескольким складам», «Комиссионная торговля»).
- Нажмите кнопку записи или просто закройте форму — настройка применяется сразу.
- Если новые документы или разделы не появились, обновите интерфейс:
Главное меню (значок ≡) → Вид → Обновить интерфейс, либо перезайдите в программу.
Отключить некоторые возможности нельзя, если по ним уже введены данные. Платформа предупредит об этом и не даст снять флажок. Это защита: иначе часть документов осталась бы без видимого раздела. Сначала распроведите и пометьте на удаление связанные документы, и только потом выключайте функционал.
Монопольный (эксклюзивный) доступ для изменения типовых настроек функциональности не нужен — их меняют в обычном режиме, при работающих пользователях. Монополия требуется только при обновлении самой конфигурации, а не при переключении флажков.
Прежде чем массово отключать функционал в рабочей базе, сделайте резервную копию. Данные не удалятся, но часть отчётов и обработок может перестать находить свои настройки, и откатить изменение будет проще из копии.
Как прочитать значение опции во встроенном языке
Если вы пишете код (обработку, расширение, правило обмена) и поведение должно зависеть от настройки базы — читайте опцию методом ПолучитьФункциональнуюОпцию. Он возвращает текущее значение:
Если ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоСкладов") Тогда
// поля и документы склада доступны — выполняем логику по складам
КонецЕсли;
Имя опции берётся из конфигуратора (свойство «Имя» объекта функциональной опции), а не из названия флажка в интерфейсе — они часто различаются.
Для параметризованных опций значение зависит от параметра (например, от организации или склада). Параметры передаются структурой:
Параметры = Новый Структура("Организация", ВыбраннаяОрганизация);
Значение = ПолучитьФункциональнуюОпцию("ИмяОпции", Параметры);
После программного изменения значения, влияющего на видимость, в текущем сеансе вызовите ОбновитьИнтерфейс(), чтобы платформа перестроила команды и формы:
ОбновитьИнтерфейс();
Если вы не уверены в точном имени метода или опции — не угадывайте. Откройте список функциональных опций в конфигураторе и скопируйте имя оттуда.
Как узнать, какие опции включены в базе
Готового пользовательского отчёта «список активных опций» в типовых нет. Но посмотреть можно тремя способами — от простого к техническому.
Способ 1 — через форму функциональности. Самый быстрый для пользователя: открываете Главное → Функциональность (или аналог) и видите, какие флажки стоят. Это и есть включённые возможности, только названы «по-человечески».
Способ 2 — через конфигуратор. Открываете ветку Общие → Функциональные опции. У простой опции в свойстве «Хранение» указана константа, в которой лежит её значение. Значение констант смотрят там же, в режиме отладки, или через форму настроек.
Способ 3 — из кода. Чтобы собрать значения всех простых опций разом, пройдитесь по коллекции метаданных:
Для Каждого ФО Из Метаданные.ФункциональныеОпции Цикл
Попытка
Сообщить(ФО.Имя + ": " + Строка(ПолучитьФункциональнуюОпцию(ФО.Имя)));
Исключение
// параметризованной опции нужны параметры — пропускаем
КонецПопытки;
КонецЦикл;
Параметризованные опции в таком обходе пропускаются (им нужны параметры), поэтому они попадают в блок Исключение. Запускать подобный код удобно во внешней обработке с правами администратора или в отладчике конфигуратора.
Внешние обработки могут быть запрещены политикой безопасности базы. Если загрузка внешней обработки не разрешена, выполняйте код в конфигураторе под учётной записью с полными правами.
Массовое управление опциями и их параметры
Когда настроек много (разворачиваете типовую под готовый регламент, переносите настройки между базами), менять по одному флажку долго. Варианты:
- Через константы. Простые опции хранятся в константах. Значение константы можно задать из кода:
Константы.ИмяКонстанты.Установить(Истина). Так удобно включать набор возможностей скриптом при первичной настройке базы. - Через параметры функциональных опций. Параметризованные опции хранят значения в ресурсах регистров сведений (например, по каждой организации — своё). Массово их задают записью в соответствующий регистр.
- Через форму настроек. Самый безопасный путь для типовой: при переключении флажка конфигурация нередко выполняет сопутствующую логику (создаёт предопределённые элементы, заполняет настройки). Прямая запись в константу этот код в обход не вызывает, поэтому для типовых конфигураций предпочитайте штатную форму.
Прямая установка констант — приём для разработчика. Если включить опцию через константу, минуя форму, часть зависимых настроек может остаться незаполненной, и функционал будет вести себя странно. В рабочей базе типовой конфигурации это оправдано только при точном понимании, что делает код формы.
Отдельно про разработку собственных опций: в расширении конфигурации вы создаёте функциональную опцию, указываете в «Хранении» константу (или реквизит/ресурс нужного типа), а на закладке «Состав» перечисляете объекты, видимостью которых опция управляет. Для элементов формы привязка задаётся свойством «ФункциональныеОпции» самого элемента. Это штатный способ скрывать свою доработку, пока она не включена.
Когда настройки нужно перенести из эталонной базы в рабочую (или размножить на несколько баз), не копируйте константы вслепую. Надёжнее собрать короткую обработку первичной настройки, которая проходит по нужным возможностям и включает их штатным способом — так срабатывает вся сопутствующая логика конфигурации. Значения параметризованных опций переносите вместе с записями их регистров сведений, иначе в новой базе функционал включится «наполовину»: флажок стоит, а значения по организациям или складам пустые.
Диагностика: почему пропал документ, отчёт или поле
Типовая ситуация: пользователь жалуется, что исчез нужный документ или колонка в таблице. В 90 случаях из ста дело не в поломке базы, а в настройке. Разбираемся по симптому.
Главное меню → Вид → Обновить интерфейс или перезайдите в программу. При клиент-серверной работе изменение видно всем сеансам после их обновления.Чтобы точно сопоставить «флажок в интерфейсе» и «технический объект», работайте от «Состава» опции в конфигураторе: он показывает полный список документов, справочников и отчётов, которые эта опция открывает. Это надёжнее, чем угадывать по названию.
Обратный приём тоже полезен. Если непонятно, за что отвечает конкретный флажок, временно переключите его в тестовой копии базы и сравните, что появилось или исчезло в меню и формах. На рабочей базе так не экспериментируйте — переключение опции затрагивает всех пользователей сразу.