Алгоритмы доступности действий
Настройки компонентов подразумевают создание связанных с ними экземпляров контекстных меню и панелей инструментов. При этом в разных режимах или для разных вариантов данных может использоваться одно и то же контекстное меню и панель инструментов, поскольку набор используемых действий с объектами в целом один и тот же. Однако может возникнуть ситуация, когда необходимо ограничить пользователю доступ к определенным действиям. Например, в контекстном меню для одного типа операции есть действие, вызывающее алгоритм в контексте выбранной операции, а для другого типа операции вызов алгоритма не нужен, а в остальном меню должно быть таким же. Создание для типа операции другого экземпляра меню, отличающегося только отсутствием этого действия, возможно, но представляется избыточным. Кроме того, может возникнуть потребность управлять доступностью действий в меню и на панели инструментов в контексте конкретного выбранного объекта или операции. Например, в плане аналитики нужно запретить пользователю удалять объекты с определенными значениями свойств.
Вы можете управлять доступностью действий с помощью специальных алгоритмов. В редакторе меню и панели инструментов для каждого действия можно задать идентификатор. Алгоритм доступности действий может присваивать идентификаторам действий одно из трех возможных состояний: доступно, запрещено (действие присутствует, но не выбирается) или спрятано (действие исчезает из меню). Кнопки из панелей инструментов убирать нельзя, то есть "спрятано" эквивалентно "запрещено". При этом предусмотрено два вида алгоритмов доступности действий: один задается для всего варианта данных, то есть для типа операции, для ветки плана аналитики или для каталогизатора, а другой - в контексте выбранного объекта, группы каталогизатора или операции. Алгоритм, заданный для варианта данных, вызывается один раз при загрузке этого варианта данных. Алгоритм, заданный в контексте объекта, группы или операции, вызывается каждый раз при перемещении курсора на другую строку в таблице. Алгоритмы второго типа можно использовать, чтобы задавать доступность действий в зависимости от конкретных свойств выбранного объекта, группы или операции.
Все алгоритмы доступности действий принимают в качестве параметра контекст вызова компонента, то есть сочетание его имени и режима отображения. В соответствии с этим, можно предложить две модели разработки алгоритмов доступности действий. Первая предполагает, что для каждого режима отображения к каждому варианту данных пишутся отдельные алгоритмы доступности действий. Вторая - что разрабатывается один универсальный алгоритм, в котором задается доступность действий в зависимости от значений контекстов вызова, и ссылка на этот алгоритм указывается для всех вариантов данных, где предполагается его использовать.
Алгоритмы доступности действий для плана аналитики:
- Доступность действий для варианта данных
- Доступность действий для объекта аналитики
- Доступность действий для группы каталогизатора
Алгоритмы доступности действий для журнала:
- Доступность действий для типа операции
- Доступность действий для операции
- Доступность действий для проводок в контексте типа операции
- Доступность действий для проводок в контексте операции
- Доступность действий для табличного признака в контексте типа операции
- Доступность действий для табличного признака в контексте операции
- Доступность действий для расчетной таблицы в контексте типа операции
- Доступность действий для расчетной таблицы в контексте операции
Примечание
Существует также универсальный алгоритм-обработчик доступности действий, который можно вызывать при старте платформы. Назначение этого алгоритма - глобальная настройка доступности действий для клиентского места. Этот алгоритм задает доступность действий во всей системе меню и панелей инструментов. Алгоритмы, задаваемые для вариантов данных, могут дополнять или изменять глобальные настройки доступности действий.