# Проектное управление

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

## Концепция

В 1Форме проект — это задача в категории особого типа («Для проектов»). Проектные задачи живут либо в «проектной» категории, либо во временной категории планирования. Иерархию и сроки проекта показывает диаграмма Ганта, на которой всей массой задач управляют в едином интерфейсе.

Коробочный контур «Проектное управление» добавляет готовые категории (Проекты, Стадии, Backlog SLA, Backlog Agile, Статус-отчёты, Риски, Проблемы, Протоколы, Договорённости), автоматизации (расчёт паспорта, НЗП, бонус РП) и аналитические порталы.

### Базовые термины

Ключевые понятия проектного управления:

| Термин | Определение |
|---|---|
| **Проект** | Последовательность взаимосвязанных событий в ограниченный период, направленных на достижение результата. В 1Форме — иерархия проектных задач в разных категориях, связанных ссылками «задача-подзадача» и «связанные задачи», с поддержкой связей по срокам; визуализируется диаграммой Ганта |
| **Проектная задача** | Задача в проектной категории, поддерживающая возможности проектного интерфейса (связи, ресурсы) |
| **Непроектная задача** | Задача в иерархии проекта, но не в проектной категории — получает не все возможности проектного управления |
| **Подпроект (групповая задача)** | Проект внутри главного проекта; ведёт себя как обычная проектная задача, пока нет дочерних — затем становится групповой |
| **Веха** | Задача нулевой длительности (дата начала = дата окончания). Знаменует важное состояние проекта |
| **Декомпозиция** | Иерархия проектных задач (дерево). Один проект может иметь несколько декомпозиций (по работам, целям, мероприятиям); задачи разных декомпозиций можно связывать |
| **Ресурс проекта** | Кадровый потенциал, бюджет, материально-техническая база. В 1Форме — исполнители-пользователи |
| **Критический путь** | Последовательность задач, определяющая дату начала или окончания проекта |
| **Критическая задача** | Задача, которую нужно завершить по плану, иначе сдвинется завершение проекта. Последовательность критических задач — это критический путь |
| **Временная категория** | Категория для проектных задач на этапе планирования. При запуске проекта в реализацию задачи переносятся в проектные категории |

> Проект может включать и задачи не из проектных категорий — если в проектных задачах устанавливаются связи через подчинённые или связанные задачи. Однако такие задачи охватываются возможностями проектного управления не полностью, что затрудняет управление сроками стандартными средствами.

### Стадии работы с проектом

Работа делится на две стадии:

| Стадия | Что происходит |
|---|---|
| **Планирование** | Все проектные задачи создаются во временной категории и доступны только подготовительной группе. Операции: декомпозиция работ, назначение исполнителей, плановые трудозатраты, связи между задачами. Маршруты, проверки и смарт-автоматизации во временной категории обычно не настраиваются |
| **Реализация** | Задачи переносятся из временной категории в назначенные проектные категории — с настроенными маршрутами, проверками и автоматизациями |

### Два контекста Ганта

Диаграмму Ганта можно открыть в двух контекстах с разными возможностями:

| Контекст | Где открывается | Что можно делать |
|---|---|---|
| **Проектный Гант** | Из карточки задачи-проекта по кнопке «Проект» либо по прямой ссылке | Полное управление: создание и редактирование задач и связей, базовые планы, запуск в реализацию, версии, импорт из реальных задач |
| **Гант категории / подзадач** | Переключение вида в реестре категории на «Гант»; вкладка «Подзадачи» в карточке задачи | Просмотр и редактирование прямо в таблице (исполнитель, шаг, даты перетаскиванием, название), экспорт в PDF и Excel |

Ключевое различие: проектный Гант работает с **виртуальным планом** (задачи плана могут ещё не иметь соответствия в реальной категории), а Гант категории показывает реальные задачи 1Формы.

## Точки входа

**Из карточки задачи-проекта — кнопка «Проект»**

В панели инструментов задачи (категория с типом «Для проектов») появляется кнопка **«Проект»**. Клик открывает проектный Гант во всю страницу.

**По ДП-таблице проекта — кнопка «Проектный Гант»**

Если у категории настроен сквозной ДП, ссылающийся на ДП-таблицу проекта, и у задачи есть значение этого параметра, появляется дополнительная кнопка **«Проектный Гант»**. Права доступа двухуровневые:

- есть доступ к задаче проекта → Гант полноценный;
- доступа к задаче нет, но есть права на ДП-таблицу → Гант доступен для **просмотра** или **редактирования**.

**Прямая ссылка (только для чтения)**

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

**Права доступа к задачам и базовым планам в Ганте**

Проектный Гант проверяет доступ пользователя к проекту. Если доступа к проекту нет — диаграмма не открывается.

Если доступ к проекту есть, но у пользователя нет права видеть отдельные задачи, такие задачи показываются как обезличенные строки с подписью «Нет доступа»: строка остаётся на своём месте в иерархии (тот же родитель и порядок), её связи отображаются, но вместо названия, сроков, исполнителей и других данных — «Нет доступа». Редактировать такую строку нельзя, и в базовый план она не попадает. Поэтому пользователи с разными правами видят на одной диаграмме разный набор деталей.

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

**Интерфейс проектного Ганта**

Интерфейс состоит из двух областей:

- **Левая панель** — табличный список задач с настраиваемыми колонками.
- **Правая панель** — диаграмма Ганта с временной шкалой.

Ширину областей регулирует перетаскиваемый разделитель. Система запоминает порядок, видимость и ширину колонок, масштаб Ганта и положение разделителя — отдельно для каждого пользователя и проекта.

![Проектный Гант: таблица задач слева, диаграмма Ганта справа](https://help.1forma.ru/help-images/pm/project_plan_new_spa-01.png)

### Колонки табличной части

Основные колонки (отображаются по умолчанию):

| Колонка | Описание |
|---------|----------|
| Наименование задачи | Название задачи. Нельзя скрыть |
| Дата начала | Дата начала работ. При изменении автоматически сдвигается дата окончания |
| Дата окончания | Планируемая дата завершения. При изменении пересчитывается длительность |
| Длительность | Длительность задачи в рабочих днях или часах — единицу задаёт «Единица длительности» в настройках плана, по умолчанию дни. Рабочие дни считаются по календарю плана. Значение показывается с округлением до одного знака после запятой — и в ячейке, и при редактировании; в расчётах плана используется точное значение. При изменении пересчитывается дата окончания |
| Календарных дней | Продолжительность в сутках (24 ч = 1 день). Только для чтения; «Единица длительности» на неё не влияет |
| % завершения | Процент выполнения в виде круговой диаграммы. Завершённые задачи — 100%, отклонённые — принудительно 0% |
| Категория | Категория проектных задач. Определяет список доступных исполнителей. Если категория не подставилась (например, из-за задержки сохранения при создании), значение восстанавливается из данных проекта автоматически |
| # Задача | Связь проектной задачи с реальной задачей системы. Можно ввести номер вручную. Уникальность номера проверяется в рамках текущей версии проекта: если такой номер уже используется в другой строке этой версии, строка сохраняется, но значение очищается (защита от привязки нескольких строк к одной реальной задаче). После установки связи в поле записывается текст задачи, а номер становится ссылкой на карточку. Для разрыва связи поле очищают. При вводе или изменении номера данные из реальной задачи подтягиваются сразу — название, исполнитель, статус, категория, фактические даты, срок |
| Статус | Статус проектной задачи с цветной индикаторной точкой по маршруту категории. Только для чтения; показывается при наличии связи с реальной задачей. Колонка располагается сразу после «# Задача». До **2.268.363** была скрыта по умолчанию — теперь видна в дефолтной раскладке. Если в проекте ранее сохранялись пользовательские настройки колонок и колонка скрывалась вручную — она останется скрытой, фикс только переставляет её позицию. Чтобы вернуть видимость, включить колонку через «Настройка таблицы» в тулбаре |
| Трудозатраты | Объём работы в часах для выбранного ресурса |
| Назначенные ресурсы | Выбор из системной категории «Справочник ресурсов». Уровень участия ресурса задаётся в процентах загрузки |
| Исполнители | Первым — ответственный, затем остальные по алфавиту. В файл Excel выгружаются именами через запятую |
| Веха | Признак вехи проекта |
| Ручное планирование | При включении даты задачи не пересчитываются автоматически при изменении проекта |
| Предшествующие | Задачи-предшественники. Определяют связи на Ганте |
| Последующие | Задачи-последователи. Определяют связи на Ганте |

### Дополнительные колонки табличной части

Дополнительные колонки (скрыты по умолчанию):

| Колонка | Описание |
|---------|----------|
| Номер строки | Номер строки в таблице |
| СДР | Структурная декомпозиция работ — иерархический номер задачи |
| Маркеры | Визуальные индикаторы состояния задачи; по умолчанию перед колонкой «Наименование задачи», только для чтения. Текущий маркер — «Задача просрочена»: показывается, если плановая дата окончания меньше текущей даты, а задача активна. Просрочка определяется по плану проекта, а не по срокам связанной реальной задачи |
| Статус | Статус проектной задачи. Только для чтения; показывается при наличии связи с реальной задачей. Рядом — цветная точка в цвете статуса из маршрута категории |
| Календарь | Календарь планирования: «Производственный календарь» или «24ч день». В первом рабочим считается рабочее время буднего дня, во втором — сутки целиком; субботы, воскресенья и праздники нерабочие в обоих |
| Дата ограничения / Тип ограничения | Ограничение на выполнение задачи: «Как можно скорее», «Как можно позже», «Фиксированное начало», «Фиксированное окончание», «Начало не раньше», «Начало не позднее», «Окончание не раньше», «Окончание не позднее» |
| Крайний срок | Последний допустимый срок завершения, после которого задача считается просроченной |
| Раннее начало / Раннее окончание | Наиболее ранняя дата, с которой задача может быть начата или завершена |
| Позднее начало / Позднее окончание | Дата, с которой задача может начинаться или до которой может завершиться с учётом возможных задержек |
| Не учитывать календарь ресурса | Игнорировать график доступности назначенных ресурсов при планировании |
| Неактивна | Задача неактивна и не будет выполняться в данный период |
| Примечание | Дополнительная информация или комментарии к задаче |
| Сведение | Сводная задача, объединяющая дочерние; длительность и сроки определяются по дочерним автоматически |
| Направление планирования | Порядок выполнения задач: вперёд или назад |
| Режим | Режим трудозатрат: «Нормальный», «Фиксированная длительность», «Фиксированные единицы», «Фиксированные трудозатраты» |
| Показать на временной шкале | Будет ли задача визуализироваться на шкале проекта |
| Общий временной резерв | Запас времени на задержки и непредвиденные обстоятельства |

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

- **Текст** — Пустой, Не пустой, Равен, Не равен, Содержит, Не содержит, Начинается с, Заканчивается с.
- **Даты** — До, После, Между, Сегодня, Завтра, Вчера, Эта/Следующая/Последняя неделя, Этот/Следующий/Последний месяц, Этот/Следующий год, Год по дате.
- **Длительность** — Больше чем, Меньше чем, Больше или равен, Меньше или равен, Между, Не между.

### Выделение, копирование и массовое заполнение ячеек

В табличной части одновременно работают два независимых механизма выделения.

**Выделение строки (чекбокс).** В крайней левой колонке у каждой строки есть чекбокс. Отметка строки — якорь для операций над задачей целиком: экспорт и импорт отрабатывают только по отмеченным строкам. Работа с ячейками не сбрасывает отметки строк.

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

- клик по ячейке — одиночное выделение;
- Shift + клик или Shift + стрелки — диапазон;
- Ctrl/Cmd + клик — добавление ячейки в выделение.

**Копирование и вставка (`Ctrl/Cmd+C` / `Ctrl/Cmd+V`).** Скопированное значение можно вставить в одну ячейку или сразу в несколько выделенных ячеек той же колонки — как в Excel. Массовая вставка одного значения в колонку удобна для назначения исполнителя, ресурса или флага сразу нескольким задачам.

**Автозаполнение «за угол».** В правом нижнем углу выделенной ячейки есть маркер: ухватите его и протащите вниз или вверх по колонке — значение размножится на все охваченные ячейки (как автозаполнение в Excel).

Массовое заполнение поддерживают колонки Исполнитель, Назначенные ресурсы, Ручное планирование и другие редактируемые колонки. Колонки-действия (в том числе колонка-чекбокс) в выделение и буфер обмена не попадают.

### Диаграмма Ганта

Начало полосы задачи — дата начала, конец — срок выполнения. Рабочие дни и часы отображаются белым, нерабочие — серым: субботы, воскресенья и праздники производственного календаря закрашиваются серым при любом календаре плана, а перенесённые рабочие выходные остаются белыми. Текущая дата — красная вертикальная линия. Связи показываются стрелками между полосами; если выбран базовый план, рядом с фактическими полосами рисуются дополнительные полосы базового плана.

**Затенение по масштабу.** В производственном календаре серым показываются также нерабочее время суток — до начала и после конца рабочего дня — и обед. Затенение рисуется, только если интервал не короче одного деления шкалы: обед и нерабочее время суток видны на шкале в часах, выходные и праздники — на шкале в днях, на шкале в неделях и крупнее затенения нет.

Масштаб — от часов до лет, настраивается кнопками на панели или колесом мыши. При изменении сроков на Ганте (растягивание или перетаскивание полосы) данные в таблице обновляются в реальном времени. Объединение задач в группу — перетаскиванием строк.

**Подсказка при наведении** на полосу: название, дата начала, дата окончания, длительность в днях, процент выполнения.

**Цветовое обозначение:** активные задачи — в цвете, завершённые — зелёные, отклонённые — серые. В таблице активные задачи — чёрным текстом, завершённые и отклонённые — серым (отклонённые также зачёркнуты).

Неактивная задача — отклонённая или отмеченная в колонке «Неактивна» — на диаграмме всегда серая, в том числе веха и полоса процента выполнения: серый цвет перекрывает режим «Цвет задач» из настроек плана и цвет, выбранный вручную.

**Процент выполнения сводной задачи** считается автоматически по трудозатратам (длительности) дочерних задач, а не по их количеству: взвешенное среднее `Σ(длительность × %) / Σ(длительность)`. Поэтому пара незавершённых длинных подзадач может «перевесить» несколько завершённых коротких — итоговый процент окажется ниже, чем при простом подсчёте «сколько подзадач из скольких закрыто». Отклонённые дочерние задачи в расчёт не включаются. Если среди дочерних есть незавершённая веха, процент сводной задачи не поднимется выше 99%, даже если остальные задачи выполнены полностью. Процент сводной задачи нельзя изменить вручную — поле редактируется только у задач без дочерних.

### Дерево задач: развёртывание и сворачивание ветвей

Задачи в плане образуют дерево: у задачи с подзадачами слева от названия стоит стрелка. Клик по стрелке разворачивает ветвь — подзадачи появляются под родителем, — повторный клик сворачивает её. У задач без подзадач стрелки нет. Развернуть всё дерево сразу нельзя: узлы разворачиваются и сворачиваются по одному.

Свёрнутая ветвь скрывает своих потомков, но не меняет ни сроки, ни связи: полосы скрытых задач просто исчезают с диаграммы и возвращаются при разворачивании. Данные при этом не меняются — кнопка «Сохранить» не активируется и запись в историю изменений плана не создаётся. Состояние развёрнутых ветвей живёт до перезагрузки страницы: после перезагрузки дерево открывается заново.

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

### Панель инструментов

Панель инструментов проектного Ганта собирает все действия над планом:

| Действие | Описание |
|----------|----------|
| Создать задачу | Добавляет задачу ниже выбранной или в конец. Максимум 10 000 задач |
| Создать подзадачу | Доступно только при одной выбранной задаче |
| Отменить / Повторить | Отмена и повтор последнего действия |
| Повысить / Понизить уровень | Изменяет иерархическую вложенность задачи |
| Критический путь | Подсвечивает задачи с максимальным влиянием на итоговый срок проекта |
| Завершённые | Показать или скрыть закрытые задачи |
| Тип планирования | Автоматический или ручной |
| Базовый план | Управление базовыми планами (до 4 слотов) |
| Создать базовый план | Сохраняет текущие даты задач как снимок для сравнения |
| Ресурсы | Просмотр загрузки ресурсов по плану |
| Масштаб + / − / Авто | Масштабирование временной шкалы |
| Навигация ← → | Переход к предыдущему или следующему интервалу на шкале |
| Поиск | Поиск задачи в проекте по названию |
| Фильтр | Скрыть завершённые или производственные задачи |
| Запуск в реализацию | Перенос задач из планирования в реальные категории |
| Отправить в реальные задачи | Создаёт или обновляет связанные задачи по данным плана |
| Импортировать | Подтягивает данные из реальных задач в план (все или только проектные) |
| Пакетная обработка | Массовые действия над выбранными связанными задачами плана |
| Создать версию / Выбор версии | Создание новой версии плана и переключение между версиями |
| Настройки плана | Окно параметров плана |
| История изменений | Просмотр истории правок с возможностью отката |
| Импорт `.mpp` | Загрузка проекта из Microsoft Project (требует настройки сервиса администратором) |
| Экспорт | Экспорт табличной части в Excel или PDF (PDF требует настройки сервиса) |
| Сохранить | Сохранение всех изменений |

С 2.268.365 кнопка «Авто» («Вписать в экран») точнее подбирает масштаб шкалы под весь проект — в том числе для планов длительностью 2–3 года и более, где раньше шкала жёстко скидывалась на кварталы. Текстовые метки задач (лейблы) при этом не обрезаются и не перекрывают рамку диаграммы: ширина полей слева и справа подбирается под фактическую длину подписей в текущем плане.

При ошибке экспорта система показывает сообщение с типом проблемы и рекомендуемым действием (сервис недоступен, превышен таймаут на большом проекте, внутренняя ошибка формирования файла).

**Импорт `.mpp` и ресурсы.** При импорте `.mpp` в категорию с настроенным «Справочником ресурсов» ресурсы из файла сопоставляются с записями справочника по имени — регистр, «ё»/«е» и порядок слов не важны. Если для ресурса нет совпадения или их несколько, он остаётся неназначенным, а задачи импортируются без назначения этого ресурса.

**Сохранение изменений**

Кнопка «Сохранить» активируется только при фактическом изменении данных: перемещении задач, изменении сроков, зависимостей или настроек проекта. **Не считаются** изменением данных и не активируют кнопку: смена масштаба шкалы, настройка состава и порядка колонок, перемещение разделителя, скрытие части таблицы или диаграммы, переключение между проектами, раскрытие и сворачивание ветвей (см. «Дерево задач: развёртывание и сворачивание ветвей»), фоновые обновления.

**Контекстное меню задачи**

По правому клику на задаче: Изменить, Копировать / Вырезать / Вставить, Фильтр, Добавить (задачу выше/ниже, веху, подзадачу, последующую/предшествующую задачу), Преобразовать в веху, Изменить уровень (повысить/понизить), Удалить, Цвет.

## Планирование дат

Даты в проектном Ганте управляются **двумя уровнями настроек**: типом планирования всего проекта и флагом отдельной задачи.

| Уровень | Где настраивается | Что задаёт |
|---|---|---|
| **Проект целиком** | Диалог создания/редактирования плана → селект **«Новые задачи добавляются как»**: «Автоматическое планирование» (по умолчанию) или «Ручное планирование» | Политику по умолчанию для новых задач |
| **Отдельная задача** | Колонка «Ручное планирование» | Переопределяет режим для конкретной строки |

Селект «Новые задачи добавляются как» появляется в одном блоке с настройкой «Цвет задач» — в том же диалоге, где задаются даты проекта и календарь. Значение по умолчанию для новых проектов — «Автоматическое планирование» (с 2.268.324).

Настройка применяется к **четырём точкам входа** новых задач:

- импорт проектных задач и импорт всех задач;
- создание нового проекта с предзаполнением;
- импорт MPP-файла (`.mpp` → JSON);
- ручное добавление строки/задачи кнопкой «+Задача» в проектном Ганте.

При **повторном** импорте у уже существующих задач режим планирования **не перезаписывается** — меняются только поля, пришедшие из импорта, флаг «Ручное планирование» сохраняется в том виде, в котором его настроил пользователь (фикс из 2.268.360).

### Автоматический режим

Даты пересчитываются автоматически при каждом изменении. По зависимостям дата зависимой задачи отсчитывается от предшественника с учётом задержки:

| Тип зависимости | От чего отсчёт | Что устанавливается |
|---|---|---|
| Конец → Начало | дата окончания предшественника + задержка | дата начала преемника |
| Начало → Начало | дата начала предшественника + задержка | дата начала преемника |
| Конец → Конец | дата окончания предшественника + задержка | дата окончания преемника |
| Начало → Конец | дата начала предшественника + задержка | дата окончания преемника |

Сдвиг предшественника мгновенно двигает всех последователей в рамках одной операции. По ограничениям («Фиксированное начало», «Начало не раньше» и т.д.) даты дополнительно корректируются.

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

**Ручной режим**

При ручном планировании задача:

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

**Календарь задачи**

У каждой задачи есть выбор календаря (колонка «Календарь»):

| Режим | Что считается рабочим временем | Влияние на длительность |
|---|---|---|
| **Производственный календарь** | Рабочие часы будних дней по общим настройкам приложения «Рабочее время с (мин)», «Рабочее время по (мин)» и «Рабочих минут в дне». Разница между продолжительностью рабочего дня и рабочими минутами считается обедом: он начинается в 13:00, но не раньше начала рабочего дня и не позже, чем позволяет его конец; если разницы нет, обеда нет. Субботы, воскресенья и праздники нерабочие | Задача длительностью 16 часов = 2 рабочих дня при 480 рабочих минутах в дне |
| **24ч день** | Рабочие сутки целиком; субботы, воскресенья и праздники нерабочие | Задача длительностью 16 часов = 16 часов подряд внутри рабочих суток |

**Выходные и праздники в календарях плана**

Оба календаря плана опираются на производственный календарь системы и различаются только длиной рабочего дня. Субботы и воскресенья нерабочие в обоих: в «24ч дне» рабочие сутки целиком — это будние сутки. Праздники подтягиваются из производственного календаря и закрываются целиком, тоже в обоих календарях.

Перенесённый рабочий выходной — суббота или воскресенье, которых нет в списке нерабочих дней производственного календаря, — наоборот открывается: в «24ч дне» рабочими становятся полные сутки, в производственном календаре — только рабочие часы обычного дня. Планировщик видит такой день белым, и задачи на нём считаются так же, как в будни.

**Направление планирования**

Колонка «Направление планирования» задаёт, от какого края считаются даты:

| Направление | Логика |
|---|---|
| **Вперёд** | От даты начала по зависимостям вычисляются дата окончания и даты последователей |
| **Назад** | От дедлайна вычисляется, когда нужно стартовать |

При планировании «назад» режим «Как можно скорее» работает как «как можно позже без срыва срока» — это удобная связка для планирования от дедлайна.

**Режим трудозатрат**

Колонка «Режим» определяет, что фиксируется при изменении одного из трёх параметров (длительность, загрузка ресурса, трудозатраты):

| Режим | Что фиксировано |
|---|---|
| **Нормальный** | Ничего не фиксировано — свободный пересчёт |
| **Фиксированная длительность** | Длительность |
| **Фиксированные единицы** | Процент загрузки ресурса |
| **Фиксированные трудозатраты** | Часы |

**Конфликты планирования**

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

### Рекомендации

Как выбрать режим планирования под задачу:

1. **Планирование с нуля** — автоматический режим: выстраивайте зависимости, даты подтянутся сами.
2. **Импорт готового плана** (MS Project, Excel) — сначала ручной режим, чтобы не перетасовать импортированные даты; затем выборочно переключайте в авто по мере уточнения связей.
3. **Фиксация ключевых дат** (веха, дедлайн приёмки) — ограничение «Фиксированное начало» / «Фиксированное окончание» в авторежиме.
4. **Замороженные этапы** (согласовано с заказчиком) — ручной режим: пересчёт их не затронет.
5. **Запущенные задачи** (с прогрессом) — полагайтесь на автозащиту, флаг специально не ставьте.
6. **Избегайте** связки «ручной родитель + авто-дети» — родитель не суммируется, иерархия визуально ломается.
7. **Проверяйте конфликты** — если задача окрасилась как проблемная, снимите ограничение или перестройте зависимости.

## Пользовательские сценарии

### Создание нового проекта

Чтобы создать проект и открыть его Гант:

1. Откройте категорию типа «Для проектов» (например, «Проекты» из коробки).
2. Создайте задачу кнопкой «+», заполните базовые ДП: тип проекта, компания, договор, плановые даты.
3. Сохраните карточку.
4. Нажмите «Заняться» (переход в статус «Выполняется»).
5. В тулбаре карточки нажмите кнопку **«Проект»** — откроется проектный Гант.

Гант открывается пустым (только с маркером «сегодня»), кнопка «Сохранить» неактивна, тип планирования по умолчанию — автоматический.

### Декомпозиция работ

Чтобы разбить проект на задачи и подзадачи:

1. «Создать задачу» → новая строка в конец или после выбранной.
2. Введите название в колонке «Наименование задачи».
3. Выберите строку → «Создать подзадачу» → появляется вложенный уровень.
4. Перетаскиванием строк меняйте иерархию и порядок; через контекстное меню — «Сделать подзадачей» / «Поднять над задачей».

Родительская задача автоматически становится суммарной (жирная полоса). Её процент завершения рассчитывается **только** из статусов дочерних задач и вручную не редактируется. Для конечной задачи без детей: завершена → 100%, отклонена → 0%, не завершена → пусто. Лимит — 10 000 задач в проекте.

### Установка связей между задачами

Связать задачи можно тремя способами:

1. В колонке «Предшествующие» у задачи-преемника укажите номер строки предшественника.
2. Или на диаграмме потяните от края полосы одной задачи к краю другой.
3. Чтобы изменить тип связи — двойной клик по стрелке.

Несколько задач связываются одним действием: отметьте в табличной части две или больше строк, нажмите правой кнопкой по одной из отмеченных и выберите «Добавить зависимости». Задачи соединятся цепочкой — каждая следующая станет последователем предыдущей; пары, между которыми связь уже есть, повторно не связываются. Соседний пункт «Удалить зависимости» снимает все связи выделенных задач, в том числе связи с задачами за пределами выделения. Оба пункта неактивны, если выделена одна задача, меню вызвано по задаче вне выделения, план открыт только для чтения или включено сравнение плана с фактом. В Ганте категории и Ганте подзадач этих пунктов нет.

Типы связей:

| Тип | Поведение |
|---|---|
| Конец → Начало | Задача B стартует после завершения A (по умолчанию) |
| Начало → Начало | Одновременный старт |
| Конец → Конец | Одновременное завершение |
| Начало → Конец | B завершается при старте A |

У каждой связи можно задать **задержку** в днях (может быть отрицательной — тогда задачи перекрываются). В автоматическом планировании сдвиг предшественника каскадно двигает последователей; в ручном — связи только визуальные. Наведение на стрелку показывает тип связи.

### Назначение ресурсов и трудозатрат

Ресурсы и исполнители назначаются по-разному:

- Ресурс — запись из системного справочника ресурсов; привязывается к задаче через колонку «Назначенные ресурсы» с процентом загрузки.
- Исполнитель задачи выбирается отдельно (колонка «Исполнители»).

Порядок: в колонке «Назначенные ресурсы» выберите ресурс → задайте процент загрузки (например, 50% — половина рабочего дня) → колонка «Трудозатраты» пересчитается автоматически по календарю.

Если сотрудник заведён в справочнике ресурсов под несколькими типами (например, разными должностями), в списке выбора его тип ресурса показывается второй строкой под ФИО — так одноимённые записи можно различить. Если у ресурса тип не задан, показывается только имя.

<img src="https://help.1forma.ru/help-images/pm/resources_assign_spa.png" alt="Выбор ресурса в колонке «Назначенные ресурсы» с указанием процента загрузки" width="360">

> Если задача запланирована на полный день (с 00:00 до 00:00 следующего дня), при передаче ресурсов в реальные задачи трудозатраты записываются только на дату начала, без распределения на следующую дату.

### Привязка к реальной задаче (колонка «# Задача»)

Два способа:

1. **Отправить в реальные задачи** — кнопка в тулбаре: для выбранной строки создаётся реальная задача в указанной у строки категории, связь устанавливается автоматически.
2. **Ввод номера вручную** — в колонке «# Задача» указать существующий номер задачи.

При установке связи из задачи подтягиваются название, исполнители, статус, категория, фактические даты и срок; номер становится ссылкой на карточку. Если реальная задача отклонена — строка плана помечается неактивной (серым), её процент сбрасывается в 0, и она не участвует в критическом пути. Разрыв связи — очистить поле (реальная задача при этом не удаляется).

> **Большие планы.** Кнопка «Отправить в реальные задачи» создаёт задачу по одной выбранной строке. Если строк в плане сотни и тысячи, массовую постановку удобнее выполнить разом — смарт-скриптом материализации плана: он создаёт задачи на стороне сервера и записывает их номера обратно в план. Это настраиваемое расширение, его разворачивает администратор площадки. Нужны: платформа **2.268.78** или новее — в смарт-скриптах должен быть доступен C#, — настроенный системный робот (задачи создаются от его имени), заполненный ключ `epTablePlanVersions` в кастомных настройках приложения и заполненное поле «Категория задач проекта» в категории проекта.

**Защита от удаления.** Строку плана с заполненным номером задачи удалить нельзя — пункт «Удалить» в контекстном меню недоступен. Чтобы удалить такую строку, сначала разорвите связь (очистите поле «# Задача»). При мультивыборе удаление блокируется, если номер задачи заполнен хотя бы у одной из выбранных строк. Строка без номера удаляется как обычно; удаление строки плана не удаляет карточку самой задачи.

### Базовые планы

Базовый план — снимок текущих дат всех задач проекта на момент создания (состав задач не меняется). Используется для сравнения «план vs факт».

1. Тулбар → «Создать базовый план».
2. Введите название → «Сохранить».
3. В комбобоксе «Базовый план» выберите снимок — рядом с фактическими полосами на Ганте отрисуются дополнительные полосы базового плана.

Доступно до 4 слотов базовых планов. Более детальный инструмент — режим сравнения с актуальными задачами (см. [Сравнение плана с реальными задачами](#сравнение-плана-с-реальными-задачами)).

**Запуск проекта в реализацию**

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

1. Проект спланирован, у задач заполнены «Категория» и исполнители.
2. Тулбар → **«Запуск в реализацию»**.

Задачи появляются в обычных таблицах целевой категории, на них работают маршруты, уведомления и подписи. Связь сохраняется через колонку «# Задача».

**Импорт данных из реальных задач**

Когда задачи проекта запущены в реализацию и живут своей жизнью (двигаются сроки, меняются исполнители), план синхронизируют с фактом: тулбар → **«Импортировать»** → выбрать «все» или выборочно. На строках Ганта обновляются название, подкатегория, даты, исполнители и статус.

**Импорт MS Project и экспорт**

Проект можно загрузить из Microsoft Project и выгрузить в офисные форматы:

- **Импорт `.mpp`** — меню «Ещё» → «Импорт» → выбор файла Microsoft Project; задачи и связи загружаются в Гант. Требует настроенного сервиса.
- **Экспорт в Excel** — выгружаются видимые колонки с текущими данными, в том же человекочитаемом виде, что и в интерфейсе (тип ограничения, режим планирования и признаки-флажки — текстом, а не техническими кодами или true/false). Колонка «Исполнители» попадает в файл именами через запятую, ответственный — первым.
- **Экспорт в PDF** — диалог выбора колонок, ориентации и параметров страницы; требует настроенного сервиса. Доступен также из вкладки «Подзадачи» карточки задачи.

### Пакетная обработка задач плана

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

- Обработка применяется только к строкам плана с заполненным номером задачи (привязанным к реальной задаче).
- Если ни одна строка не выделена — обрабатываются все строки с номером задачи; если выделены конкретные — только они.
- Все задачи партии должны принадлежать **одной категории** — иначе система предложит уточнить выбор. Доступные действия (срок, заказчик, перенос, удаление и др.) берутся из настроек этой категории.

После выполнения таблица плана обновляется — отображаются новые статусы и данные.

## Критический путь

Критический путь — это задачи, у которых нет запаса времени: любая их задержка сдвигает завершение всего проекта. Включается тумблером в тулбаре; критические задачи подсвечиваются на диаграмме.

Для анализа доступны дополнительные колонки (скрыты по умолчанию, включаются через меню колонок): «Раннее начало», «Раннее окончание», «Позднее начало», «Позднее окончание», «Общий временной резерв». Резерв — это разница между поздней и ранней датой старта; задачи с нулевым или отрицательным резервом считаются критическими.

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

## Версии проекта

Версия — зафиксированное состояние проекта на определённый момент: полный набор задач, зависимостей и настроек. Несколько версий одного проекта существуют параллельно; между ними переключаются комбобоксом в тулбаре. Первая версия создаётся вместе с проектом, дополнительные — кнопкой «Создать версию».

При создании новой версии открывается окно «Создание плана» (по умолчанию выбран **«Новый план»**):

- **Новый план** — пустая версия, либо с импортом только проектных задач, либо с импортом всех задач (проектных и производственных).
- **Дублировать план** — копирует задачи из текущей открытой версии.

Имя новой версии подставляется автоматически по шаблону «План ДД.ММ.ГГГГ». Одна версия помечается как **Основной план**; при включении флага у новой версии он автоматически снимается с предыдущей.

![Окно создания версии плана: имя, даты, календарь, выбор «Новый план» или «Дублировать»](https://help.1forma.ru/help-images/pm/project_version_create_spa.png)

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

**Восстановление версии.** Пункт «Восстановить» в контекстном меню записи истории возвращает план к состоянию, зафиксированному в этой записи. Восстановление выполняется из снимка, сохранённого вместе с записью: если снимка нет, план не меняется и выводится сообщение «Не удалось получить данные версии для восстановления».

**Отличие версии от базового плана:** базовый план сохраняет только даты при неизменном составе задач; версия — это отдельный набор задач со своими базовыми планами.

**Исполнители в новой версии.** Версия плана — снимок состояния проекта, и состав исполнителей в ней фиксируется на момент создания. При создании версии из текущего плана или из выбранных задач исполнители переносятся из исходного плана, назначать их заново не нужно: в колонке «Исполнители» новой версии показывается то же, что и в исходном плане — имена и аватары, ответственный первым. Список хранится вместе с версией, поэтому при переключении между версиями колонка перестраивается под выбранную, без перезагрузки страницы. Если версия создаётся как пустой план, переносить исполнителей неоткуда — колонка заполняется по мере назначения.

## Настройки плана

Окно «Настройки плана» открывается из тулбара:

| Параметр | Описание |
|----------|----------|
| Наименование плана / Автор | Название плана и его автор. Автор проставляется автоматически — это создатель плана, изменить его в окне нельзя |
| Дата начала / окончания | Временные рамки. Дата окончания по умолчанию заполняется автоматически |
| Задачи не раньше начала проекта | Сдвигает задачи так, чтобы ни одна не начиналась раньше даты начала |
| Задать дату окончания плана | При включённом флаге дата окончания вводится вручную. При снятом поле недоступно, а окончание рассчитывается: берётся срок задачи-проекта, при пустом сроке — дата начала плана плюс 6 месяцев |
| Календарь | «Производственный календарь» (рабочие часы буднего дня, обычно 8 ч) или «24ч день» (рабочие сутки целиком) |
| Единица длительности | «Дни» (по умолчанию) или «Часы» — в чём показывается и редактируется колонка «Длительность» |
| Основной план | Флаг основного плана среди версий (активен только один) |
| Цвет задач | Нет / Маркеры (ручной выбор из палитры) / Цвет задачи (автоматически) |
| Статус | Черновик / Активное / Архив |
| Подпись | Подписан / Не подписан |

Временные рамки отображаются вертикальными синими чертами на Ганте — «Начало проекта» и «Окончание проекта». Обе черты строятся строго по датам плана, вместе со временем, а не по началу суток. При снятом флаге «Задать дату окончания плана» вторая черта тоже видна — она встаёт на рассчитанное окончание. Между датой начала и окончания должен быть минимум один день. После установки рамок задачи перемещаются только внутри диапазона. Выбор календаря лучше делать при создании проекта — смена в процессе пересчитывает даты задач.

![Окно «Настройки проекта»: имя, автор, даты, календарь, статус и подпись плана](https://help.1forma.ru/help-images/pm/project_settings_spa.png)

> **Откуда берутся даты.** При импорте реальных задач дата начала плана берётся из поля задачи-проекта «Дата начала» (если пусто — из даты создания), и так всегда. Дата окончания подтягивается только при снятом флаге «Задать дату окончания плана»: из поля «Срок», а при пустом сроке — дата начала плана плюс 6 месяцев; при включённом флаге импорт окончание плана не трогает. При создании новых задач из проектного управления дата начала ставится автоматически, срок — по дате окончания проектной задачи.

**Когда пересчитывается окончание плана.** Рассчитанное окончание хранится в данных плана наравне с введённым вручную, но при снятом флаге «Задать дату окончания плана» перезаписывается расчётом: срок задачи-проекта, при пустом сроке — дата начала плана плюс 6 месяцев. Перерасчёт идёт при любом обновлении данных из реальных задач — импорте (полном и выборочном), отправке в реальные задачи и пакетной обработке — вместе с датой начала, которая в эти же моменты подтягивается из задачи-проекта. Открытие плана и переключение версий даты не пересчитывают: пустые заполняются из задачи-проекта, уже заполненные остаются как есть. Тот же расчёт подставляется в диалоги создания плана и импорта `.mpp`, если в файле нет даты окончания.

При создании первых задач в пустом проекте дата начала берётся из даты начала проекта, заданной в настройках. Время определяется календарём проекта; длительность по умолчанию — 1 сутки.

## Гант категории и Гант подзадач

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

### Представление категории «Гант»

Слева — табличная часть со списком задач (дата начала, срок), справа — диаграмма Ганта. Начало полосы соответствует дате начала работ (если поле не заполнено — дате постановки задачи), конец — сроку выполнения. Текущая дата — красная черта. Краткую информацию о задаче показывает подсказка при наведении на полосу. Строки левой таблицы оформляются так же, как в табличном представлении категории: закрытая или отклонённая задача — серым текстом, просроченная — красным, приоритет строку целиком не заливает. Общие правила — в разделе [«Оформление строк с задачами»](https://help.1forma.ru/domains/tasks/business.md#оформление-строк-с-задачами).

**Длина полосы у задачи без дат.** Если у задачи не заполнены ни дата начала, ни срок, полоса показывается от даты постановки задачи и занимает один день. Если заполнен только срок, начало полосы отсчитывается от даты постановки задачи, а конец — от срока. У завершённой задачи без срока конец полосы — фактическая дата завершения.

В категорийном Ганте (в отличие от проектного) флаги начала и окончания проекта не отображаются — это непроектный сценарий.

**Связи между задачами:** четыре типа — Конец→Начало, Начало→Начало, Конец→Конец, Начало→Конец. При наведении на связь показывается её тип; при удалении зависимости пересчитываются по оставшимся связям.

Прямо в категорийном Ганте можно редактировать (при наличии прав): исполнителей, состояние (выполнить шаг маршрута), название, даты и процент выполнения.

**Изменение дат и названия.** Перетаскивание или растягивание полосы, как и правка даты в таблице, открывает карточку задачи со стандартным контролом смены срока или даты начала — дата в нём уже подставлена из Ганта. Причину изменения вводит пользователь: она попадает в историю переносов срока и в запрос акцепта, если он настроен в категории. При переносе полосы целиком меняются обе даты, и контролы открываются последовательно — сначала дата начала, затем срок. Если диалог отменён, карточка закрыта без сохранения или сервер отклонил изменение, полоса возвращается на прежнее место, и расхождения между диаграммой и задачей не остаётся. Выделить несколько строк через Shift или Ctrl в этом Ганте нельзя — за один раз меняется одна задача.

**Фильтры.** На панели инструментов категорийного Ганта есть кнопка фильтров, как в канбане: список полей берётся из колонок табличного представления категории, выбранное поле показывается чипом фильтра, а задачи в таблице и на диаграмме отбираются по заданным условиям. Отбор выполняет сервер при каждом изменении условий. Условия по нескольким полям действуют одновременно.

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

Вместе с найденными задачами показываются их родительские задачи — как контейнеры ветки, даже если сами они условию не соответствуют; это распространяется и на родителей, принадлежащих другой категории. Если у задачи нет поля, по которому идёт фильтр (его нет в её категории), задача считается не подошедшей и скрывается, а её родители остаются контейнерами ветки.

#### Колонки трудозатрат

В табличной части доступны 4 дополнительные колонки:

| Колонка | Что показывает |
|---|---|
| Сумм. план ресурсов (ч.) | Плановые трудозатраты накопительно: сама задача и все её подзадачи |
| Сумм. факт ресурсов (ч.) | Фактические трудозатраты накопительно: сама задача и все её подзадачи |
| Всего план ресурсов (ч.) | Плановые трудозатраты только по самой задаче, без подзадач — совпадает с блоком ресурсов в её карточке |
| Всего факт ресурсов (ч.) | Фактические трудозатраты только по самой задаче, без подзадач — совпадает с блоком ресурсов в её карточке |

Значения отображаются с двумя знаками после запятой. Для родительских задач «Всего…» считается по дочерним в текущем дереве; если показ закрытых задач выключен — их трудозатраты не учитываются.

**Цвет задач**

В меню панели инструментов — пункт **«Отобразить цвет задач»** (по умолчанию выключен). При включении полосы окрашиваются в цвет аватара задачи, как в проектном Ганте. Выбор сохраняется отдельно для каждого пользователя в каждой категории.

**Экспорт**

Данные категорийного Ганта можно выгрузить в двух форматах:

- **Excel** — экспорт видимых данных.
- **PDF** — документ со структурой таблицы и временной шкалой; доступен также из вкладки «Подзадачи» в карточке задачи. Требует настройки сервиса экспорта.

### Гант подзадач (из карточки задачи)

Открывается из меню тулбара задачи: «Подзадачи» → «Диаграмма Ганта». Если категория проектная — кнопка «Проект» ведёт в проектный Гант; для непроектных категорий открывается **Гант подзадач** — отдельный режим визуализации только подчинённых и связанных задач.

![Гант подзадач: таблица слева, диаграмма с полосами задач справа](https://help.1forma.ru/help-images/pm/subtasks_gantt-001.png)

Слева — табличная часть, справа — диаграмма. По умолчанию показываются только активные задачи; завершённые открывает кнопка-иконка «Показывать завершённые» в панели инструментов — подпись видна в подсказке при наведении, включённое состояние показано подсветкой кнопки. Активные задачи в таблице — чёрным шрифтом, завершённые и отклонённые — серым; красной подсветки просрочки здесь нет — в данные этого списка признак просрочки не приходит. Общие правила — в разделе [«Оформление строк с задачами»](https://help.1forma.ru/domains/tasks/business.md#оформление-строк-с-задачами).

**Режим «Связи».** Рядом в панели инструментов есть кнопка-иконка «Связи», по умолчанию выключенная. При включении в дерево добавляются задачи, связанные с корнем проекта и с текущей открытой задачей: связанная встаёт на уровень той, к которой привязана — связанные корня отдельным корневым уровнем, связанные текущей задачи рядом с ней, — а её подзадачи раскрываются вниз. Собственные связи этих задач дальше по дереву не подтягиваются. Связанная задача выделяется в таблице и на диаграмме фиолетовым; её подзадачи показываются обычным цветом. Кнопка «Показывать завершённые» действует и внутри связанных ветвей. Повторное нажатие кнопки «Связи» убирает связанные задачи и их подзадачи из дерева.

**Колонки.** Основные (по умолчанию): Наименование задачи, Начало, Конец, Статус, Исполнитель, % завершения. Дополнительные: Номер строки, СДР, Длительность, Календарных дней, суммарные и общие план/факт ресурсов.

Правый клик по заголовку колонки, помимо «Фильтра» и сортировки, открывает пункты «Колонки» — выбор отображаемых колонок — и «Спрятать колонку» — скрытие текущей колонки из таблицы.

| Колонка | Особенности |
|---|---|
| Начало | Если у задачи нет даты начала — подставляется дата создания. У открытой задачи, где заполнен только срок, начало полосы отсчитывается от срока назад на среднее время завершения по категории |
| Конец | При отсутствии срока для завершённой задачи показывается дата завершения. Изменение пересчитывает длительность и календарные дни. У открытой задачи без срока конец полосы равен началу плюс прогноз завершения от текущего статуса по основному маршруту: суммируются нормативы оставшихся шагов, а где норматив не задан — среднее время пребывания задач в этом статусе за последние 365 дней; итог округляется до конца рабочего дня по производственному календарю. Если у текущего статуса нет продолжения основного маршрута, конец полосы считается по среднему времени завершения по категории |
| Статус | В режиме редактирования показывает доступные переходы маршрута; рядом — цветная точка статуса |
| % завершения | Круговая диаграмма. Для конечных подзадач: 100% при завершении, пусто при незавершённости; для родительских — авторасчёт по статусам дочерних |

**Прогнозная дата окончания.** Прогноз строится от текущего статуса задачи до конца основного маршрута: складываются нормативы оставшихся шагов, а для шага без норматива берётся среднее время пребывания задач в этом статусе за последние 365 дней. Прогноз не хранится — он считается по текущему состоянию задачи при каждом построении диаграммы, поэтому смена статуса сразу сдвигает конец полосы. Дата округляется до конца рабочего дня по производственному календарю и пропускает нерабочие дни; если начало полосы оказалось позже конца, добавляются сутки. Задача с заполненным сроком и завершённая задача прогноз не получают: в поле остаётся срок или фактическая дата завершения. Средние значения по статусам обновляются при ночном обслуживании раз в сутки и не агрегируются заново при каждом запросе: статистическая часть прогноза обновляется по суточному циклу, а сам прогноз по-прежнему рассчитывается для текущего состояния задачи. На дату начала прогноз не влияет — она по-прежнему отсчитывается от срока назад на среднее время завершения по категории.

Тот же прогноз показывается в окне «Подзадачи», которое открывается из карточки задачи: в его колонке «Срок» стоит та же дата, что и на диаграмме Ганта.

Двойной клик по ячейке открывает её в режиме редактирования (при наличии прав). Кнопка «Создать» добавляет новую подзадачу. Управлять можно из таблицы и с диаграммы: перетаскивание строк меняет порядок и вложенность, растягивание полосы меняет сроки. Сроки, дата начала и название здесь изменяются так же, как в категорийном Ганте — через карточку задачи, с причиной и откатом при отмене; множественное выделение строк недоступно.

В проектном Ганте это не действует: там даты меняются прямо на диаграмме, без открытия карточки.

**Контекстное меню задачи:** открыть задачу, создать задачу или подзадачу (выше/ниже), изменить вложенность и порядок. При включённом режиме «Связи» связанную ветвь целиком — и саму связанную задачу, и её подзадачи — нельзя перетаскивать, менять ей вложенность и порядок и создавать задачу выше или ниже неё: перецепить связанную ветвь в другое место дерева нельзя. У обычных подзадач поведение прежнее.

**Фильтр по колонке.** Правый клик по заголовку колонки табличной части открывает пункт «Фильтр»; набор операторов зависит от типа данных колонки. В текстовых колонках это «пустой», «не пустой», «равен», «не равен», «содержит», «не содержит», «начинается с», «заканчивается на»; в датных — «до», «после», «между», «сегодня», «завтра», «вчера», «эта неделя», «следующая неделя», «последняя неделя», «этот месяц», «этот год», «следующий год», «год по дате»; в числовых, включая «Длительность», «Календарных дней» и «% завершения», — «равен», «не равен», «больше чем», «меньше чем», «больше или равен», «меньше или равен», «между», причём обе границы диапазона входят в условие. Для списочных колонок — «Статус», «Категория», «Исполнители», «Заказчик» — вместо ввода значения предлагается выпадающий список с множественным выбором; в него попадают только значения, встречающиеся в задачах этого Ганта, упорядоченные по алфавиту. Операторы здесь — «равен», «не равен», «пустой», «не пустой»; по умолчанию подставляется «равен». «Равен» оставляет строки, у которых есть хотя бы одно из отмеченных значений, «не равен» — строки, у которых нет ни одного из них; задача с несколькими исполнителями проходит по совпадению любого из них. Пока в списке ничего не отмечено, условие выдачу не ограничивает. Фильтры разных колонок применяются одновременно и объединяются по «И»: строка видна, только если проходит все условия. Иерархия сохраняется — если условию удовлетворяет подзадача, вместе с ней показывается цепочка её родительских задач. Фильтр влияет только на отображение: полный набор задач и связей остаётся источником истины для расчёта дат, длительности и процента выполнения. Кнопка «Показывать завершённые» действует поверх колоночных фильтров. Если на колонке установлен фильтр, в её контекстном меню появляются три пункта: «Изменить фильтр» — открывает окно редактирования условия, «Убрать фильтр» — снимает условие только этой колонки, «Отключить фильтр» — временно выключает условие, не удаляя его. В колонках «Длительность» и «Календарных дней» значения сравниваются с той же точностью, с какой выводятся в таблице.

Отфильтрованные задачи исчезают и с диаграммы — вместе со своими полосами, а не только из табличной части.

**Сортировка по колонке.** Правый клик по заголовку колонки табличной части открывает пункты «Сортировать по возрастанию» и «Сортировать по убыванию». Сортировка однокритериальная: выбор сортировки на другой колонке заменяет текущую. Иерархия сохраняется — подзадачи сортируются внутри своей родительской задачи, а родительские упорядочиваются по наименьшему значению выбранной колонки среди вложенных (по возрастанию) или наибольшему (по убыванию); задачи с пустым значением уходят в конец при сортировке по возрастанию и в начало — при сортировке по убыванию. Сортировать можно по любой колонке, включая дополнительные, кроме служебных «Номер строки» и «СДР». Пока сортировка активна, порядок внутри родительской задачи задаёт она: перетаскивание строки к соседям по той же родительской задаче не выполняется, а пункт «Изменить порядок» в контекстном меню задачи недоступен; перетаскивание в другую задачу — смена вложенности — работает. Снятие сортировки возвращает тот ручной порядок, который был задан до её включения.

Гант подзадач запоминает — отдельно для каждого пользователя и каждой категории — видимость, порядок и ширину колонок, колоночные фильтры и сортировку, состояние фильтра «Показывать завершённые» и положение разделителя. Экспорт — в Excel и PDF (PDF требует настройки сервиса); выгрузка учитывает активную сортировку и фильтры — Excel выгружает отфильтрованные строки в текущем порядке, а в PDF активные условия фильтрации печатаются в шапке страниц.


**Создание задач при активных фильтрах и сортировке.** Создавать задачи прямо в таблице (кнопка «Создать» и пункты контекстного меню «Добавить») можно и при включённых колоночных фильтрах и сортировке: пока идёт ввод, новая строка остаётся видимой, даже если ещё не удовлетворяет условиям. После сохранения задача подчиняется активным фильтрам и сортировке — если она им не соответствует, то скрывается из выдачи и появляется после сброса фильтров. Уведомление при этом не показывается.

**Что наследует новая задача.** Задача, созданная прямо в таблице — кнопкой «Создать» или пунктами контекстного меню, — не получает значения дополнительных параметров родительской задачи. Из родителя подставляются только параметры, у которых в целевой категории режим «При постановке» — «Обязателен»: без них задачу не сохранить. Остальные параметры, включая Lookup, остаются пустыми. Создание подзадачи из формы задачи это не затрагивает — там наследование значений работает как прежде.

> Для задач, созданных в старых версиях системы, цвет статуса может не отображаться. Чтобы получить актуальные цвета, нажмите «Импортировать» в тулбаре.

## Сравнение плана с реальными задачами

Просмотровый режим показывает расхождение между плановыми и фактическими датами связанных реальных задач без редактирования плана. Включается из меню «Базовый план» → «Сравнить с актуальными задачами».

В этом режиме на полосе каждой плановой задачи виден индикатор сдвига (опережение, отставание или точно по плану), а ячейка названия подсвечивается: зелёным — задачи, появившиеся в факте без плана; серым — групповые, сдвинутые только из-за изменений дочерних; красным — задачи, у которых в факте сменился родитель. Каждая строка помечается как «Проект.» (плановая) или «Произ.» (производственная). Кнопки создания и копирования задач в этом режиме заблокированы.

## Синхронизация плана и реальных задач

Данные между планом и реальными задачами не синхронизируются автоматически — для переноса изменений используются явные операции:

| Операция | Направление | Что обновляется |
|----------|-------------|-----------------|
| **Отправить в реальные задачи** | план → задача | Название, даты, исполнители, заказчик, назначенные ресурсы (в том числе снятие назначения) |
| **Импортировать** | задача → план | Название, даты начала и окончания, исполнители, статус, категория |

**Даты самой задачи-проекта.** Кроме строк плана «Отправить в реальные задачи» обновляет и задачу-проект: дата начала плана уходит в её дату начала всегда, а окончание плана — в её срок только при включённом флаге «Задать дату окончания плана» и заполненной дате окончания. При снятом флаге рассчитанное окончание остаётся внутри плана и в задачу не пишется.

Если в таблице отмечены задачи чекбоксами, операция применяется только к ним (при отметке задачи верхнего уровня выделяется всё её дерево). Исключение: при изменении значения в колонке «# Задача» данные связанной задачи подтягиваются сразу. При ошибках синхронизации система показывает окно с описанием проблемы и ссылкой на задачу.

В колонке «Назначенные ресурсы» список выбора ограничен ресурсами той категории, к которой относится редактируемая задача, — ресурсы других категорий в нём не показываются. Если при отправке в реальную задачу ресурс назначения определить не удаётся, операция по этой строке не выполняется и выводится сообщение «Не удалось разрешить ресурс для назначения».

**Состав ресурсов и снятие назначений.** В списке выбора и в просмотре загрузки участвуют только записи справочника ресурсов тех категорий, которые используются в плане; исполнители из плановых и фактических трудозатрат связанных реальных задач ресурсами не считаются и в состав не добавляются. Если подбор по категории возвращает пустой список, состав ресурсов очищается — записи от другого плана или другой версии в нём не сохраняются. Назначения, для которых ресурс в этом составе не находится (ресурс удалён из категории либо назначен на исполнителя без записи в справочнике), при загрузке плана снимаются, и выводится сообщение «Назначения ресурсов сняты у задач (N): …» с перечнем названий. При обновлении строки данными связанной задачи назначения перестраиваются по её плановым трудозатратам, а если плановых нет — по фактическим; когда ни одного исполнителя сопоставить с ресурсом не удаётся, назначения со строки снимаются.

**Сотрудник на нескольких ресурсах.** Если у связанной задачи один и тот же сотрудник задействован на нескольких ресурсах, в плане он получает отдельное назначение на каждый ресурс, и объём каждого назначения — только его собственные посуточные дни. Общий объём сотрудника по задаче — сумма его назначений.

> Если есть несохранённые изменения в обоих направлениях — сначала отправьте актуальное направление, чтобы не перезаписать правки обратной операцией.

## Настройка проектной категории

Проектный Гант работает на дополнительном параметре типа «Таблица», в котором хранятся версии плана. Перед использованием Ганта категорию настраивают как проектную и создают этот ДП.

**Типы категорий.** Проект — это задача в категории с типом **«Для проектов»**; работы по проекту учитываются в категории с типом **«Для проектных задач»**. Тип задаётся на вкладке **«Проекты»** в настройках категории. В категории «Для проектов» в настройке **«Категория для проектных задач»** указывается категория-приёмник: в неё попадают задачи при запуске проекта в реализацию и при создании подзадач с Ганта.

**Предусловия.** Категорию нельзя сделать проектной, если в ней есть обязательные к заполнению дополнительные параметры (нужные проверки выносят в смарт-правила). Во всех категориях проектной деятельности должен быть включён срок и активны опции «Разрешить переходы в просроченных задачах», «Разрешить смену исполнителей в просроченных задачах», «Разрешить ставить срок в прошлом» — см. [categories/business.md](https://help.1forma.ru/domains/categories/business.md).

**Права доступа.** На вкладке «Доступ» проектных категорий группам выдаются права: Исполнять, Переносить срок, Редактировать исполнителей, Создавать задачи. Полный перечень прав — [permissions/business.md](https://help.1forma.ru/domains/permissions/business.md).

**Маршрут категории «Для проектных задач».** Для автоматического заполнения дат настраивают два места в маршруте: на переходе запуска работ («Новая» → «Выполняется») — действие с датой начала «Заполнять текущим временем»; на терминальных статусах («Завершена», «Отклонена») — опцию «Заполняется дата завершения». Подробнее — [categories/transition-settings-reference.md](https://help.1forma.ru/domains/categories/transition-settings-reference.md).

**Создание ДП «Таблица» проекта** и подключение сервисов импорта `.mpp` / экспорта PDF — это административная настройка; порядок описан в [system/settings-custom.md](https://help.1forma.ru/domains/system/settings-custom.md) и [ext-params/table/settings-reference.md](https://help.1forma.ru/domains/ext-params/table/settings-reference.md).

**Отчёты по проекту** настраиваются на контекст «Задача» и привязываются к категории с типом «Для проектов».

## Блок «Информация по проекту»

На карточке задачи-проекта (задача в категории типа «Для проектов») сразу под шапкой отображается системный блок **«Информация по проекту»** — сводка расчётных параметров проекта. Блок виден только у проектных задач; для обычных задач его нет. Блок необязателен: если он не используется, его можно скрыть в настройках категории.

Параметры делятся на **плановые** (из проектного плана на диаграмме Ганта) и **фактические** (по реальному ходу работ). Значения рассчитываются автоматически — вручную в блоке они не редактируются.

| Параметр | Тип | Что показывает |
|----------|-----|----------------|
| **Процент выполнения** | расчётный | Степень готовности проекта в процентах. Пересчитывается автоматически при изменении дочерних задач на диаграмме Ганта. |
| **Начало** | плановый | Плановая дата начала проекта (из плана Ганта). Если не задана — «не установлено». |
| **Длительность** | плановый | Плановая длительность проекта в формате «дни / часы / минуты» (например, «21 день 7 часов 51 минута»). Если не задана — «не установлено». |
| **Фактическое начало** | фактический | Дата и время реального начала работ по проекту. Пока работы не начаты — «не установлено». |
| **Фактическое завершение** | фактический | Дата и время фактического завершения проекта. Пока не завершён — «не установлено». |
| **Фактическая длительность** | фактический | Фактическая длительность работ в формате «дни / часы / минуты». Пока не определена — «не определено». |

Плановые «Начало» и «Длительность» задаются через проектный план (диаграмму Ганта) при планировании работ; фактические заполняются по мере реального выполнения.

**Связи с другими доменами**

Проектное управление опирается на несколько смежных доменов:

| Домен | Связь |
|---|---|
| Задачи | проект и его задачи — это задачи системы |
| Категории | типы категорий «Для проектов» и «Для проектных задач», права, системные ДП |
| Дополнительные параметры | ДП «Таблица» для хранения версий плана |
| Ресурсы | плановые и фактические трудозатраты по задачам |
| Календарь | производственный календарь для расчёта длительности |
| Отчёты | аналитика по проектной деятельности |
