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