Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

В статье описана функция управления сменой статусов

...

элемента, которая может

...

применяться для упрощения контроля

...

выполнения задач/замечаний в проекте.

Она позволяет:

  • Определять допустимые переходы между статусами (например, Выполняется Выполнено).

  • Ограничивать возможность изменения статуса конкретными пользователями (например, Инициатором или Исполнителем).

  • Исключать ошибки в учете статусов и ускорять процесс согласования и закрытия задач/замечаний.

Функция актуальна при ведении большого количества задач/замечаний, где важно отслеживать последовательность действий и обеспечивать прозрачность процесса.

Table of Contents
maxLevel2
stylenone

Пример пошаговой настройки

1. Добавление атрибутов к типу элемента "Статус"

  1. В настройках типов элемента выберите "Статус" → перейдите на вкладку "Атрибуты" 

  2. Добавьте следующие атрибуты типа Lookup:

    • Перечень разрешенных типов элементов (системное имя: content_type_allowed_list; ссылка на список: "Типы элемента"; множественный выбор)

      • Цель: ограничивает, для каких типов элементов данный статус доступен.

    • Разрешенный предыдущий статус (системное имя, например: allowed_prev_lookup; ссылка на список: "Статусы задач"; множественный выбор)

      • Цель: задает, какие статусы могут предшествовать текущему.

ВНИМАНИЕ! Необходимо создать похожие атрибуты в случае, если они отсутствуют в Системе.

2. Настройка отображения атрибутов

  1. В В списке "Статус задачи" через настройку вида отобразите новые атрибуты в табличном виде.
  2. Для каждого статуса заполните значения атрибутов: какие предыдущие статусы допустимы и какие типы элементов разрешены и какие предыдущие статусы допустимы.

Image Added

3.

...

Настройка атрибута "Статус задачи"

...

для типа элемента "Замечание"

...

  1. К типу элементу "Замечание"

...

  1. добавьте атрибут "Статус задачи" (task_status).

...

  1. Настройте фильтрацию значений.

Цель: фильтрация доступных статусов в зависимости от типа элемента и текущего статуса.

Пример Фильтрацию значений с помощью формулы:

Format('i => i.GetValueAsLookupIdList(\"content_type_allowed_list\").Contains(Guid(\"{0}\")) && i.GetValueAsLookupIdList(\"allowed_prev_lookup\").Contains(Guid(\"{1}\"))', Id(This('contenttype')), Id(This('Статус задачи')))Цель: фильтрация доступных статусов в зависимости от типа элемента и текущего статуса

где используются атрибуты:

  • task_status — Статус задачи;
  • content_type_allowed_list — Перечень разрешенных типов элементов;
  • allowed_prev_lookup — Разрешенные предыдущие статусы.

4. Настройка валидаторов для атрибута "Статус задачи"

Добавьте валидаторы, ограничивающие выбор некоторых статусов по ролям Пользователей.

Примеры валидаторов:

Валидатор 1 — ограничение для Инициатора

  • Цель: позволяет Инициатору менять статус только при закрытии, доработке или аннулировании.
  • Условие срабатывания:

...

Contains(This('Инициатор', true), User())

Валидатор 2 — ограничение для Исполнителя

  • Цель: Исполнитель может менять статус на "Выполняется" или "Выполнено".
  • Условие срабатывания:

...

Contains(This('Исполнитель', true), User())

Примечания

  • Перед созданием новых атрибутов убедитесь, что похожий атрибут точно отсутствует в Системе.

  • При фильтрации значений формула учитывает текущий тип элемента (contenttype) и текущий статус задачи.

  • Валидаторы помогают избежать несогласованных изменений статусов, но их настройка должна быть согласована с регламентом работы проекта.

  • Для удобства просмотра используйте табличные виды со всеми атрибутами и фильтрами.