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