Алгоритм доступности действий для объекта аналитики
Алгоритм определяет доступность действий (пунктов меню и кнопок на панели инструментов) в контексте выбранного объекта аналитики. В отличие от алгоритма доступности действий для варианта данных, который определяет доступность действий для всей ветки плана аналитики или каталогизатора, этот алгоритм может определять доступность действий в зависимости от конкретного выбранного объекта и вызывается каждый раз при перемещении курсора на другой объект.
Ссылка на алгоритм задается в менеджере настроек отображения.Параметры алгоритма:
ВЫЧИСЛИТЬ (ПЕРЕМ АНАЛИТ_КОНТЕКСТ: контекст; ПЕРЕМ <T>: объект; ПЕРЕМ ЛКФ_ДЕЙСТВИЯ: д) // ... КОНЕЦ
- контекст - входной параметр. Код корневого объекта ветки или имя каталогизатора и код родительской группы + имя режима настроек.
- объект - входной параметр. Текущий объект, выбранный в редакторе плана аналитики. Алгоритм не должен его изменять. Вместо идентификатора <T> задается имя объектного типа родительского объекта аналитики или имя базового объектного типа: АНАЛИТИКА или АНАЛИТ_ОБЪЕКТ.
- д - выходной параметр. Разрешения действий. Каждому идентификатору действия ставится в соответствие одно из состояний: доступно, запрещено или спрятано.
Пример
Пример иллюстрирует использование алгоритма доступности действий для объекта аналитики, который разрешает или запрещает доступ к редактированию объекта аналитики в зависимости от значения его свойства "цена".
В Настройке отображения указывается ссылка на алгоритм для ветки "ТОВАРЫ" в узле "Доступности действий для для объекта аналитики", а в редакторе меню для действия Правка-Удаление контекстного меню задается идентификатор "изменение".
ВЫЧИСЛИТЬ(ПЕРЕМ АНАЛИТ_КОНТЕКСТ: контекст; // вход ПЕРЕМ АНАЛИТИКА: об; // вход ПЕРЕМ ЛКФ_ДЕЙСТВИЯ: действия) // выход ЕСЛИ об._свойства["цена"].значение < 5000 ТО действия.идент["изменение"] = ЛКФ_СД_ДОСТУПНО ИНАЧЕ действия.идент["изменение"] = ЛКФ_СД_ЗАПРЕЩЕНО КОНЕЦ_ЕСЛИ КОНЕЦ