Функциональные опции
30.04.2018
Категория: 1С:Предприятие
Функциональные опции позволяют разработчику выделить некоторую часть функциональности прикладного решения, которую можно оперативно включать или выключать на этапе внедрения и/или в процессе работы системы.
Опции «Бухгалтерский учет» и «Расчет зарплаты»
Предположим, нам нужно отключить в конфигурации визможность ведения бухгалтерского учета и расчета заработной платы. Для отключения соответствующей функциональности мы создадим функциональные опции «Бухгалтерский учет» и «Расчет зарплаты», установим их для соответствующих объектов конфигурации и отключим их в режиме 1С:Предприятие.
Поскольку значения функциональных опций обязательно должны где-то храниться, добавим сначала константы БухгалтерскийУчет
и РасчетЗарплаты
с типом Булево
, в которых будут храниться значения функциональных опций.
Если значение константы Истина
, значит, функциональная опция включена. Если значение Ложь
, функциональная опция выключена.
Затем раскроем ветвь «Общие», выделим ветвь «Функциональные опции» и создадим функциональные опции «Бухгалтерский учет» и «Расчет зарплаты», указав в свойстве «Хранение» соответствующие константы.
Теперь нам нужно привязать объекты конфигурации к функциональным опциям. На закладке «Состав» отметим нужные объекты для функциональной опции «Бухгалтерский учет». Аналогично, на закладке «Состав» отметим нужные объекты для функциональной опции «Расчет зарплаты».
Теперь, если мы откроем окно редактирования объекта конфигурации, входящего в состав функциональной опции «Бухгалтерский учет», то эта опция будет включена на закладке Функциональные опции окна редактирования этого объекта.
Таким образом, отображение объектов конфигурации в интерфейсе приложения зависит от того, включена связанная с ними функциональная опция или нет.
Для остальных объектов конфигурации на закладке «Функциональные опции» ничего не отмечено. Если функциональная опция для объекта выключена, это значит, что данный объект не зависит от значения функциональной опции и отображается всегда.
Если включить в состав функциональной опции какую-либо подсистему, то мы вообще не увидим соответствующего раздела в «1С:Предприятии», пока данная функциональная опция отключена.
После этого раскроем ветвь «Общие формы» и откроем общую форму констант с именем ОбщиеНастройки
. Нам нужно добавить в нее новые константы, чтобы затем в пользовательском режиме открывать форму констант и изменять значение функциональных опций.
На закладке «Реквизиты» этой формы раскроем основной реквизит НаборКонстант
и перетащим константы БухгалтерскийУчет
и РасчетЗарплаты
в окно элементов формы.
Опция «Учет клиентов»
Рассмотрим еще один пример. «Поименный» учет клиентов при оказании услуг востребован далеко не всегда. Зачастую важен лишь сам факт оказания услуги, при этом «личность» клиента не имеет значения. Поэтому предусмотрим в нашей конфигурации возможность отключить ведение списка клиентов и избавимся от необходимости указывать клиента каждый раз при оказании услуги.
Также доработаем существующие функциональные опции, включив в них и подсистемы «Бухгалтерия» и «РасчетЗарплаты». Раз бухгалтерия не нужна, значит ее нет нигде.
Откроем состав функциональной опции «Бухгалтерский учет» и добавим в него подсистему «Бухгалтерия». Аналогичным образом добавим в состав функциональной опции «РасчетЗарплаты» подсистему «РасчетЗарплаты».
Теперь займемся созданием новой функциональной опции. Для хранения этой опции добавим константу с именем УчетКлиентов
с типом Булево
. Добавим функциональную опцию «УчетКлиентов» и укажем, что ее значение будет храниться в константе УчетКлиентов
. На закладке «Состав» укажем, какие объекты будут входить в эту функциональную опцию.
- Прежде всего — справочник «Клиенты».
- Затем — реквизит
Клиент
документа «ОказаниеУслуги». - И в заключение — измерение
Клиент
регистра накопления «Продажи».
Теперь доработаем общую форму «ОбщиеНастройки», с помощью которой мы устанавливаем значения функциональных опций. Прежде всего перенесем в состав элементов формы нашу новую константу УчетКлиентов
. После этого обеспечим автоматическую перерисовку интерфейса прикладного решения после установки новых значений функциональных опций.
Для этого добавим обработчик события формы ПослеЗаписи
.
&НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) ОбновитьИнтерфейс(); КонецПроцедуры
ОбновитьИнтерфейс()
— это метод глобального контекста, который обновляет командный интерфейс, начальную страницу и открытые формы с учетом текущих значений функциональных опций и их параметров.