А теперь, познакомившись с функциональными опциями, вернемся к нашей задаче.
В качестве отправной точки мы будем использовать демонстрационную базу «Глава 1.6. Редактирование командного интерфейса». Результат выполняемых действий можно посмотреть в демонстрационной базе «Глава 1.7. Влияние функциональных опций на командный интерфейс».
Нам требуется предоставить пользователям возможность самостоятельно настроить вариант задания цен на товары – либо в целом на товар, либо на товар в разрезе различных видов цен.
Для решения этой задачи в первую очередь создадим хранилище значения функциональной опции, значение которой будет управлять вариантом ценообразования. В качестве хранилища будем использовать константу ЦенообразованиеПоВидамЦен с типом данных Булево. Если значение константы Истина, то в подсистеме ценообразования используются виды цен, иначе виды цен не используются.
Используя контекстное меню узла Константы дерева конфигурации, добавим новую константу. В окне свойств установим значения для свойств добавленной константы (рис. 1.110):

Рис. 1.110. Заполнение свойств константы
Обеспечим возможность редактирования значения константы. Для этого найдем в ветке Общие формы форму констант Общие настройки и откроем ее.
В дерево элементов формы добавим поле Ценообразование по видам цен, связанное с реквизитом формы ЦенообразованиеПоВидамЦен. Для этого перетащим мышью этот реквизит из окна реквизитов (в правом верхнем списке) в окно элементов формы в левом верхнем списке (рис. 1.111).

Рис. 1.111. Добавление новой константы в форму
ПРИМЕЧАНИЕ
Более подробно о работе с редактором форм можно прочитать в .
Мы обеспечили возможность хранения и редактирования значения функциональной опции. А теперь давайте представим, что мы изменили значение константы.
Что хотелось бы увидеть в командном интерфейсе? Правильно, хочется увидеть обновленный командный интерфейс (панель разделов, панель навигации, начальную страницу и т. д.), построенный с учетом нового значения функциональной опции. Для этого в модуле формы реализован обработчик события ПослеЗаписи(), в котором методом глобального контекста ОбновитьИнтерфейс() выполняется обновление интерфейса пользователя (рис. 1.112).

Рис. 1.112. Обработчик «ПослеЗаписи()» в модуле формы
Теперь добавим саму функциональную опцию. Для этого используем контекстное меню узла Функциональные опции дерева конфигурации. В окне редактирования свойств установим значения для свойств добавленной функциональной опции (рис. 1.113):

Рис. 1.113. Заполнение свойств функциональной опции
Следующим шагом будет выбор объектов конфигурации, зависящих от созданной функциональной опции.
Для этого в окне редактирования свойств функциональной опции перейдем на закладку Состав и в дереве объектов конфигурации пометим справочник ВидыЦен и измерение ВидЦен регистра сведений ЦеныТоваров (рис. 1.114).

Рис. 1.114. Заполнение состава функциональной опции
Если ценообразование в разрезе видов цен не используется, то все команды для работы со справочником ВидыЦен будут «лишними». Поэтому зависимость настраиваем для справочника в целом.
С регистром сведений ситуация другая. Нам в любом случае необходимо выполнять ценообразование в разрезе товаров. А вот в разрезе видов цен ценообразование выполняется не всегда. Поэтому зависимость настраиваем не в целом для регистра сведений, а для подчиненного ему объекта измерения.
В общем случае одни и те же объекты конфигурации могут входить в состав нескольких функциональных опций. В такой ситуации доступность их команд определятся по правилу логического ИЛИ – если хотя бы одна функциональная опция имеет логическое значение Истина, команды будут доступны.
Если же объект конфигурации не входит в состав ни одной из функциональных опций, то и доступность его команд от опций не зависит.
Обновим конфигурацию базы данных и запустим демонстрационную базу в режиме 1С:Предприятие от имени пользователя Администратор.
В панели разделов основного окна выберем раздел Ценообразование. Команды обращения к списку справочника Виды цен в командном интерфейсе нет. Эта команда отключена вследствие того, что константа Ценообразование по видам цен имеет значение Ложь (рис. 1.115).

Рис. 1.115. При отключенной функциональной опции команда «Виды цен» в командном интерфейсе отсутствует
Выберем команду Цены товаров, открывающую список регистра сведений Цены товаров (рис. 1.116).

Рис. 1.116. Список регистра сведений «Цены товаров» при отключенной функциональной опции
В списке отсутствует измерение Вид цен регистра сведений Цены товаров.
Теперь в форме Общие настройки (доступной из меню функций раздела Предприятие) у константы Ценообразование по видам цен установим признак использования и нажмем кнопку Записать. Посмотрим теперь, как изменился состав команд панели навигации и вид формы списка регистра сведений (рис. 1.117).

Рис. 1.117. Командный интерфейс и список регистра сведений «Цены товаров» при включенной функциональной опции
В панели навигации появилась команда Виды цен, открывающая форму списка справочника, а в форме списка регистра сведений отображается колонка Вид цен.
Таким образом, при отсутствии учета цен в разрезе их видов мы имеем возможность убрать из командного интерфейса «лишние» команды.