Show/Hide Toolbars

Руководство администратора

Иерархии задач (Прежний интерфейс)

Ссылки Назад Вверх Вперед

warning_icon Работает только для MS SQL

term_icon Иерархия задач это интерфейс для просмотра дерева подчиненных задач. В иерархии могут быть собраны задачи из различных категорий. Источником данных для иерархии является хранимая процедура, поэтому в иерархию может быть заложена любая логика связи между родительским и дочерними объектами. Чаще всего иерархии используются для работы с задачами, но в общем случае иерархии могут отображать любые объекты (например, орг. структуру, состав вложенных групп и т.п.).

В иерархии можно:

Скрывать/раскрывать отдельные ветви,

Менять текст и отдельные параметры задач,

Перемещать или копировать задачи в другую ветку,

Открывать карточки задач для просмотра и редактирования.

Эти возможности описаны в Руководстве пользователя.

В пользовательском режиме интерфейс доступен по ссылке: https://адрес_1Формы/spa/task-hierarchy/{id}

где id — это идентификационный номер иерархии.

Пример иерархии задач для отдела HR — в ней отображаются вакансии, открытые в подразделениях, и анкеты кандидатов на эти вакансии.

hierarchy_cv_spa

Пример иерархии задач

Как правило, иерархия используется для отображения задач (в настройках такой иерархии параметр "Тип данных" имеет значение "Задача"). Задачи могут быть связаны между собой по принципу "родительская — подчиненная" или по ссылке через ДП Lookup. Кроме того, иерархия может использоваться и для представления других "древовидных" структур — например, организационной структуры (в настройках такой иерархии параметр "Тип данных" имеет значение "Прочее").

Иерархия может включать в себя только обычные, статические столбцы, а может также дополняться динамическими столбцами. Динамические столбцы создаются в момент получения данных для иерархии, и количество этих столбцов зависит от полученных данных. Например, в иерархии отображаются данные по проектам. В этом случае в строках иерархии перечисляются проекты и их этапы, а столбцах — данные по месяцам (на скриншоте ниже это цветовой идентификатор статуса риска). Количество месяцев зависит от длительности конкретного проекта, при настройке иерархии это количество неизвестно, поэтому столбцы с этими данными формируются динамически.

Настройка иерархии

Окно настройки иерархии задач:

Кликните мышью для просмотра изображения в полном размере

Окно настройки иерархии

Параметр

Описание

Имя

Название иерархии

Хранимая процедура получения данных

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

Входящие параметры:

@TaskId int = null,
@RootTaskId int = null,
@SessionUserId int,
@XmlParam xml = null,
@OnlyOneRow bit = 0,
@DataType varchar (20) = 'GetChilds'

@TaskId (int) — ID текущей задачи (используется для реализации рекурсии),

@RootTaskId (int) — ID корневой задачи (вершины иерархии),

@SessionUserId (int) — ID пользователя, который просматривает иерархию (необходим для контроля прав доступа),

@XmlParam (xml) — фильтр,

@OnlyOneRow (bit) — служебный параметр, признак получения полного/тестового набора данных. Значение этого параметра заполняется автоматически, достаточно определить его в хранимой процедуре (в общем случае в этот параметр передается значение 0; если передается 1, то возвращается не вся выборка для иерархии, а только одна запись с тестовыми данными, необходимая для настройки таблицы "Настройки вывода колонок", см. ниже),

@DataType (varchar (20)), значение по умолчанию 'GetChilds' — служебный параметр, необходим для обновления иерархии. Значение этого параметра заполняется автоматически. Если параметр имеет значение 'GetChilds', то процедура возвращает все дочерние задачи для @TaskID; если параметр имеет значение 'GetItem', то процедура возвращает данные конкретной задачи @TaskId.

warning_icon Параметр @RootTaskId может быть задан статически, в настройках иерархии (см. ниже настройку "Id корневой задачи"), а может передаваться в процедуру динамически, при вызове иерархии. Если этот параметр передается динамически, то статический параметр игнорируется. Параметр @TaskId на первой итерации выполнения процедуры равен null, на последующих итерациях  — нет.

Список полей, возвращаемых процедурой, может меняться. Обязательные поля:

Id (int) — ID задачи,

ParentId (int) — ID родительской задачи,

IsEncrypted (bit) — признак зашифрованности задачи,

HasChildren (bit) — признак наличия у данной задачи подчиненных задач.

warning_icon Названия возвращаемых полей регистрозависимые, т.е. должно возвращаться именно поле Id, а не ID или id

Хранимая процедура получения списка категорий для постановки задачи

(не обязательно)

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

Входящие параметры:

@HierarchyId int = null,
@TaskId int = null,
@SessionUserId int,
@XmlParam xml = null

@HierarchyId (int) — ID иерархии,

@TaskId (int) — ID корневой задачи (вершины иерархии),

@SessionUserId (int) — ID пользователя, который просматривает иерархию (необходим для контроля прав доступа),

@XmlParam (xml) — фильтр.

Процедура должна возвращать поля:

SubcatId (int) — ID категории,

Description (text) — название категории

Хранимая процедура получения динамических данных

(не обязательно)

Процедура, которая формирует динамические столбцы. В качестве динамического может быть указан только один столбец, который "тиражируется". Например, динамический столбец содержит данные о проценте выполнения задачи и "тиражируется" по месяцам.

Входящие параметры:

@TaskId int = null,
@RootTaskId int = null,
@SessionUserId int,
@XmlParam xml = null,
@OnlyOneRow bit = 0,
@DataType varchar (20) = 'GetChilds'

@TaskId (int) — ID текущей задачи (используется для реализации рекурсии),

@RootTaskId (int) — ID корневой задачи (вершины иерархии),

@SessionUserId (int) — ID пользователя, который просматривает иерархию (необходим для контроля прав доступа),

@XmlParam (xml) — фильтр,

@OnlyOneRow (bit) — признак получения полного/тестового набора данных. Значение этого параметра заполняется автоматически, достаточно определить его в хранимой процедуре (в общем случае в этот параметр передается значение 0; если передается 1, то возвращается не вся выборка для иерархии, а только одна запись с тестовыми данными, необходимая для настройки таблицы "Настройки вывода динамических колонок", см. ниже),

@DataType varchar (20), значение по умолчанию 'GetChilds' — служебный параметр, необходим для обновления иерархии. Значение этого параметра заполняется автоматически. Если параметр имеет значение 'GetChilds', то процедура возвращает все дочерние задачи для @TaskID; если параметр имеет значение 'GetItem', то процедура возвращает данные конкретной задачи @TaskId.

Процедура должна возвращать поля (названия полей могут быть другими):

Id (int) — ключ, по которому будет происходить объединение с набором данных для статических столбцов (также по столбцу Id),

СolName (text) — заголовок динамического столбца, который будет отображаться в пользовательском интерфейсе,

ColFieldName (text) —  название динамического столбца; должно начинаться с латинской буквы, может содержать латинские буквы и цифры (название не должно соответствовать какой-либо колонке данных, возвращаемых хранимой процедурой, оно используется для внутренней логики и большого значения не имеет),

ColValue (тип зависит от значения) — значения в ячейках динамического столбца,

ColOrder (int) — порядок динамического столбца (столбцы будут отображаться слева направо по возрастанию этого значения),

ColStyle (text) — описание стиля ячейки динамического столбца (см. ниже),

ColLink (text) — ссылка, которая будет открываться по клику на ячейку динамического столбца.

Значение этой колонки будет записано в свойство href тега <a>.

Чтобы открыть задачу в модальном окне, в данное поле надо записать следующее.

Если по клику на задачу должна открываться карточка этой задачи, то первый и второй параметры совпадают.

Передача двух разных параметров позволяет реализовать такой сценарий: по клику на задачу в иерархии открывается другая задача, связанная с ней какой-то бизнес-логикой (например, через ДП Lookup).

Например, в иерархии "Подразделения" -> "Вакансии" -> "Анкеты кандидатов" по клику на вакансию открывается карточка приказа, утверждающего новое штатное расписание. В этом случае в первый параметр передается ID задачи с приказом, а во второй параметр — ID задачи с вакансией.

Второй пример — иерархия "Совещания" -> "Вопросы повестки" -> "Решения по вопросам повестки". В карточке вопроса указывается проект, на котором возник этот вопрос. В иерархии по клику на строку с вопросом открывается карточка проекта. В этом случае в первый параметр передается ID проекта, а во второй параметр — ID задачи с вопросом

ColIco (text) — колонка, содержащая адрес иконки для ячейки динамического столбца.

Если в данной настройке есть значение, то будут использоваться указанные иконки. Путь к иконке может указываться относительно приложения, например: '../img/icon1.png'

Id корневой задачи

(не обязательно)

ID задачи, которая является вершиной иерархии (параметр @RootTaskId, см. выше)

Тип данных

Возможные значения:

Задача — если иерархия строится по задачам,

Прочее — если иерархия строится по другим объектам системы (например, по элементам орг.структуры)

Разрешить drag-and-drop

Если флажок включен, то пользователь сможет менять порядок задач в иерархии (т.е. менять родительские задачи), перетаскивая строки мышью.

warning_icon Опция доступна только если "Тип данных" имеет значение "Задача".

warning_icon Режим drag-and-drop корректно работает только если иерархия строится по связям "родительская->дочерняя" — в этом случае при перетаскивании задачи у нее меняется родительская задача. Если же иерархия строится по ссылкам в ДП Lookup или по какой-то иной логике, то при перетаскивании задач эта логика не поддерживается

Загружать все дерево сразу

Если флажок включен, то дерево загружается/обновляется целиком, рекурсивно вызывая обновление каждого узла, у которого есть подчиненные задачи. В этом случае дерево после загрузки отображается полностью раскрытым.

Если флажок отключен, то дерево загружается частями, при открытии ветки подгружается ее содержимое

Разрешить пользователям изменять отображение

Если флажок включен, то пользователи могут менять список и порядок отображаемых столбцов (кроме закрепленных). В пользовательском интерфейсе отображается кнопка Поля.

Разрешить инлайн редактирование

Если флажок включен, то для иерархии с типом данных "Задачи" в пользовательском интерфейсе по двойному клику на поле с типом TaskText поле переходит в режим редактирования, и после сохранения (клавишей "Ввод") исправления вносятся в текст задачи

Передавать в ХП полный путь

Если настройка включена, динамически формируется текстовая переменная, которая включает себя полный путь кликов пользователя, и передаётся в API метод /app/v1.2/api/tasksHierarchies/{taskhierarhyid}/nodes

Это позволяет отображать в иерархии набор данных при раскрытии 2-3 уровня, в зависимости от того, откуда пользователь попал на этот уровень.

ID внешнего объекта

Присваивается автоматически при первом сохранении настроек иерархии

Открыть настройки фильтрации

(отображается после первого сохранения настроек иерархии)

По клику на ссылку открывается окно для выбора фильтра (аналогичного фильтру отчетов и портальных блоков).

Параметры фильтрации передаются в хранимую процедуру в параметре @XmlParam в виде XML-структуры.

Если для иерархии настроена фильтрация, в пользовательском интерфейсе отображается кнопка Фильтр

Кнопки управления

В таблице отображается список кнопок, которые будут отображаться в пользовательском интерфейсе в виде контекстного подменю "Совершить действие для выбранных".

Настройка кнопки описана здесь.

Настройки вывода колонок

При сохранении иерархии в таблицу автоматически добавляются все поля, возвращаемые хранимой процедурой (каждое поле — отдельная строка таблицы). После этого в таблице можно настроить внешний вид выводимых полей — цвет, выравнивание и пр., по аналогии с портальным блоком "Таблица".

Чтобы изменить порядок следования колонок в иерархии, перетащите строки таблицы настроек в нужном порядке:

rows_order

Отображать

Если флажок отключен, то колонка не будет отображаться (по умолчанию отображаются все колонки).

см. описание

Столбец из хранимой процедуры

Название колонки в SQL-процедуре

Заголовок колонки

Название колонки, как оно должно отображаться в иерархии

Подсказка для наименования колонки

Всплывающая подсказка, которая будет отображаться при наведении курсора мыши на название колонки

Ширина колонки в %, px

Ширина колонки в % от общей ширины иерархии или в px (указывается слитно, без пробела)

Выравнивание текста

Выберите один из доступных вариантов выравнивания текста (по левому краю, по центру, по правому краю)

Брать ссылку из столбца

Выберите колонку, содержащую ссылку, которая будет открываться по клику мыши.

Значение этой колонки будет записано в свойство href тега <a>.

Чтобы открыть задачу в модальном окне, в данное поле надо записать следующее.

Если по клику на задачу должна открываться карточка этой задачи, то первый и второй параметры совпадают.

Передача двух разных параметров позволяет реализовать такой сценарий: по клику на задачу в иерархии открывается другая задача, связанная с ней какой-то бизнес-логикой (например, через ДП Lookup).

Например, в иерархии "Подразделения" -> "Вакансии" -> "Анкеты кандидатов" по клику на вакансию открывается карточка приказа, утверждающего новое штатное расписание. В этом случае в первый параметр передается ID задачи с приказом, а во второй параметр — ID задачи с вакансией.

Второй пример — иерархия "Совещания" -> "Вопросы повестки" -> "Решения по вопросам повестки". В карточке вопроса указывается проект, на котором возник этот вопрос. В иерархии по клику на строку с вопросом открывается карточка проекта. В этом случае в первый параметр передается ID проекта, а во второй параметр — ID задачи с вопросом

Брать стилизацию из столбца

Если в данной настройке есть значение, то текст в этой колонке будет выводиться с указанными атрибутами форматирования (вместо форматирования по умолчанию)

Брать иконку из столбца

Для дополнительной визуализации в иерархии могут использоваться иконки. Использование для строки той или иной иконки прописывается в хранимой процедуре, поэтому для визуализации может использоваться любая бизнес-логика — например, иконка может соответствовать статусу задачи, принадлежности к категории, значению определенного параметра и т.п.

Чтобы использовать иконки, в хранимой процедуре необходимо возвращать текстовую колонку с URL иконки (адрес может быть относительным для приложения).

Пример

Тип колонки

Возможные значения:

Text,

TaskText,

Html,

UserId,

Date,

DateTime,

Percent,

Number,

Money,

Boolean.

warning_icon В любой иерархии должна быть одна колонка с типом TaskText. Тип TaskText рекомендуется указывать для колонки с текстом задачи (для типа данных "Задача") или названием объекта (для типа данных "Прочее"). Во-первых, слева от такой колонки отображается символ стрелки, по нажатию на нее раскрывается/сворачивается ветвь иерархии. Во-вторых, текст задачи можно редактировать непосредственно из иерархии (при включенном флажке "Разрешить инлайн редактирование", см. выше)

Формат вывода данных

для даты

для чисел

Максимальное количество выводимых символов

Действует для колонок с типом Text и TaskText. Если значение не указано — текст отображается полностью.

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

Закрепленная

Одну или несколько первых (левых) колонок можно закрепить, это удобно если в иерархии отображается много колонок и требуется горизонтальная прокрутка, или если есть динамические колонки, количество которых заранее не известно. Закрепленные колонки не участвуют в горизонтальной прокрутке и всегда остаются видны.

Если флажок включен, колонка закреплена.

warning_icon При закреплении хотя бы одной видимой колонки, у всех видимых колонок должна быть задана ширина в пикселях

Доступно пользователям

Если флажок включен, а также включена настройка "Разрешить пользователям изменять отображение" (см. выше), то пользователи смогут включать/отключать отображение данного столбца (с помощью кнопки Поля), менять ширину столбца и порядок следования незакрепленных столбцов.

см. описание

Настройки вывода динамических колонок

Брать порядок из столбца

Колонка ColOrder из хранимой процедуры

Брать имя поля из столбца

Колонка ColFieldName из хранимой процедуры

Брать заголовок из столбца

Колонка ColName из хранимой процедуры

Брать подсказку для наименования колонки из столбца

Колонка с текстом, который будет отображаться во всплывающем окне при наведении курсора мыши на название динамической колонки

Брать значение из столбца

Колонка ColValue из хранимой процедуры

Ширина колонки в %, px

Ширина колонки в % от общей ширины иерархии или в px (указывается слитно, без пробела)

Выравнивание текста

Выберите один из доступных вариантов выравнивания текста (по левому краю, по центру, по правому краю)

Брать ссылку из столбца

(не обязательно) Колонка ColLink из хранимой процедуры

Брать стилизацию из столбца

(не обязательно) Колонка ColStyle из хранимой процедуры

Брать иконку из столбца

(не обязательно) Колонка ColIco из хранимой процедуры

Тип колонки

Возможные значения:

Text,

TaskText,

Html,

UserId,

Date,

DateTime,

Percent,

Number,

Money,

Boolean.

Формат вывода данных

(не обязательно)

для даты

для чисел

Доступно пользователям

Если флажок включен, и включена настройка "Разрешить пользователям изменять отображение" (см. выше), то пользователи смогут включать/отключать отображение динамических колонок (с помощью кнопки Поля).

см. описание

Основная колонка

Одна из колонок, отображаемых в иерархии, выбирается в качестве основной (в иерархии задач такая колонка обычно соответствует тексту задачи). Для такой колонки в настройках вывода колонок надо указать тип TaskText.

Слева от такой колонки отображается символ стрелки, по нажатию на нее раскрывается/сворачивается ветвь иерархии.

hierarchy_arrow

Стрелки для раскрытия/сворачивания ветви иерархии

Настройка стиля

Для описания стилей могут использоваться следующие типовые значения:

Значение

CSS стиль, который соответствует данному значению

Default

Нет стиля

Success

background-color:#dff0d8 (зеленый)

Info

background-color:#d9edf7 (голубой)

Warning

background-color:#fcf8e3 (желтый)

Danger

background-color:#f2dede (розовый)

TotalsRow

font-weight: bold

BackRed

background-color: pink

BackGreen

background-color: lightgreen

BackBlue

background-color: lightblue

BackYellow

background-color: gold

TextRed

color: red

TextGreen

color: green

warning_icon Если необходимо задать несколько атрибутов, их надо перечислить через пробел.

Помимо типовых значений для задания стиля можно использовать любые значения цвета и фона в формате 'Color#ХХХХХХ' для цвета текста и 'Background#ХХХХХХ' для цвета фона (где ХХХХХХ — шестизначное обозначение цвета в формате HEX).

Аналогичным образом можно указывать значение высоты строки в формате 'HeightXXXpx' (где ХXХ — количество px).

Если необходимо задать несколько значений, их можно перечислить через запятую. Например, 'Color#ff0000,Background#00ff00' или 'Color#ff0000,Height40px'

Кроме того, для отображения задач в иерархии могут использоваться стили из табличного представления категорий:

Значение

Описание

CSS

task-closed

для завершенных задач — серый шрифт

color: gray

task-rejected

для отклоненных задач — серый перечеркнутый шрифт

color: gray; text-decoration: line-through

task-new

для новых задач — жирный шрифт

font-weight: bold

task-overdue

для просроченных задач — красный шрифт

color: red

В дополнение к этим стилям может использоваться стиль task-state, который отображает текст одной строкой без переносов (white-space: nowrap). Например, 'task-state task-closed'. Этот стиль действует для колонок с типом Html.

warning_icon Для колонки с типом TaskText всегда применяется стиль с автоматическим переносом строки, который имеет преимущество (white-space: normal !important).

Настройка отображения столбцов

Первоначально при загрузке иерархии отображаются только те статические колонки, для которых включен флажок "Отображать", а также динамические колонки (если они настроены).

Если для иерархии включена настройка "Разрешить пользователям изменять отображение", то пользователи могут менять список отображаемых колонок, их порядок и ширину. В пользовательском интерфейсе в правом верхнем углу иерархии будет отображаться кнопка Поля. По клику на кнопку открывается окно со списком доступных для отображения колонок, в котором пользователь может выбрать нужные ему колонки. Для выбора доступны только те колонки (статические и динамические), для которых включен флажок "Доступно пользователям".

warning_icon Для статических колонок с включенной настройкой "Закрепленная" возможности управления видимостью, порядком и шириной не действуют.

Права доступа к иерархии

В поле "ID внешнего объекта" при наведении курсора мыши на строку всплывает кнопка !detailsInNewWindow , по клику на нее открывается окно для настройки прав доступа. Доступ выдается на уровне групп. Если включен флажок "Виден всем", то иерархию смогут просматривать все пользователи. Чтобы добавить группу, участники которой получат право просматривать иерархию, нажмите кнопку Добавить в блоке "Право просмотра".

hierarchy_view_edit

Настройка прав доступа к иерархии

Обработка параметров фильтра

Если для иерархии настроен фильтр, в процедуру будут передаваться параметры и значения фильтра в формате XML. Имя параметра передается как атрибут Name. Для периода передаются два значения — From и To, для остальных параметров передается значение Value.

Для обработки параметров фильтра удобно использовать процедуру crm_repGetParams.

В процедуре для построения иерархии обращение к этой процедуре может выглядеть следующим образом:

Примеры хранимых процедур для иерархий

Пример процедуры отбора данных по подзадачам

Пример иерархии вакансий в подразделениях (по ссылкам Lookup)

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

Пример процедуры для формирования иерархии орг.структуры