Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Механизм функциональных опций
Дальше: Глава 1.8. Пользовательская настройка интерфейса

Отключаем неиспользуемые команды

А теперь, познакомившись с функциональными опциями, вернемся к нашей задаче.

В качестве отправной точки мы будем использовать демонстрационную базу «Глава 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. Командный интерфейс и список регистра сведений «Цены товаров» при включенной функциональной опции

В панели навигации появилась команда Виды цен, открывающая форму списка справочника, а в форме списка регистра сведений отображается колонка Вид цен.

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

Назад: Механизм функциональных опций
Дальше: Глава 1.8. Пользовательская настройка интерфейса