Функциональные опции
Отдельно хочется рассказать про еще одну интересную возможность платформы
«1С:Предприятие 8» – о функциональных опциях. Функциональные опции
позволяют выделить некоторую часть функциональности прикладного решения и
быстро и просто управлять тем, будет эта часть использоваться, или не будет
использоваться в конкретной информационной базе.
Использовать функциональные опции удобно при внедрении программ.
Например, в нашей программе предусмотрено три «учетных» раздела – работа со
знакомыми, событиями и финансовый учет. Если мы решим подарить нашу
разработку друзьям или доработать ее функционально и продавать, всегда можно
поинтересоваться, а все ли нужно потенциальным пользователям из того, что мы
предлагаем. Например, далеко не все готовы набирать и отслеживать все
события, которые происходят в их жизни. При этом вести список друзей и
знакомых полезно практически всем, как и считать свои деньги:-).
Так вот, узнав о том, что кому-то работа с событиями может показаться излишней,
мы можем выделить это в функциональную опцию и предоставить пользователям
самим решать, нужно им это или нет. При этом платформа «1С:Предприятие 8»
отследит все упоминания событий во всех разделах конфигурации и, если это
пользователю не нужно, автоматически отключит их использование и
отображение.
Причем все эти изменения платформа выполнит самостоятельно, так что
специалисту нет необходимости как-либо изменять конфигурацию (что-либо
программировать). Он просто в пользовательском режиме 1С:Предприятие задает
нужное значение функциональной опции – и все!
Мы рассмотрим самый простой пример – когда значение функциональной опции
хранится в константе, имеющей тип Булево. Если там значение Истина – значит,
функциональная опция включена. Если значение Ложь – функциональная опция
выключена.
Т. к. мы создаем первую пользовательскую настройку нашей программы, логично
будет создать для нее подсистему Настройки и назначить отдельную картинку
«ПодсистемаНастройки.png».
Сразу расположим нашу новую «настроечную» подсистему в конце «обычных»
подсистем. Для этого в свойствах конфигурации нажмем на ссылку Командный
интерфейс.
И переместим подсистему Настройки в самый низ.
После этого создадим константу, назовем ее ИспользоватьСобытия и скажем, что она
имеет тип Булево. Сразу привяжем константу к подсистеме Настройки (меню
Дополнительно Alt+Shift+Enter).
Затем мы создадим функциональную опцию ИспользоватьСобытия и укажем, что ее
значение будет храниться в константе ИспользоватьСобытия.
В результате этих действий в разделе Настройки у нас появится команда, которая
позволит нам в пользовательском режиме открыть форму констант и изменить
включить или отключить использование функциональной опции.
Теперь нам нужно привязать объекты конфигурации и реквизиты объектов к этой
функциональной опции. Что в нашей системе обеспечивает функциональность
работы с событиями? Прежде всего, это подсистема События; далее справочник
События и связанный с ним справочник СтатусыСобытий; затем – реквизиты
табличных частей документов Событие; и, наконец, измерение Событие регистра
накопления.
Очень просто привязать все перечисленные выше элементы конфигурации к
функциональной опции ИспользоватьСобытия. Достаточно в окне параметров
функциональной опции перейти на закладку Состав. После чего последовательно
отметить флажки у всех объектов, относящихся к функциональной опции. Для
контроля система будет выводить в нижнем окне список того, что мы отметили.
Теперь запускаем пользовательский режим, сразу идем в раздел Настройки и включаем
использование Событий (в секции Сервис), чтобы проверить, что создание
функциональной опции ни на что в нашей системе не повлияло.
Перезапускаем пользовательский режим и видим, что все на своих местах
(осталось, как и было до введения функциональной опции).
Теперь идем в Настройки и отключаем использование событий. Сохраняем
изменения. Перезапускаем пользовательский режим.
Внимательно смотрим на наше приложение.
Во-первых, «пропал» раздел События и упоминания объектов, связанных с
событиями на рабочем столе.
Во-вторых, исчезли все упоминания событий во всех используемых в системе объектах,
включая информацию, отображаемую отчетами.
Мы получили то, что хотели – использование учета событий в нашей CRM-системе стало
опциональным и зависит только от желания конкретного пользователя этой системы.
|