Задачи и график
Задачите са основният инструмент за планиране и проследяване на работата по проект. Системата поддържа йерархична структура с два вида задачи — контейнери (групиращи задачи) и листови задачи (конкретна работа).
Видове задачи
Контейнер
Контейнерът групира подзадачи. Използва се за организиране на работата по фази, раздели или зони на строежа.
- Може да съдържа листови задачи и под-контейнери
- Не изисква мерна единица или количество
- Процент на завършване се изчислява автоматично: действителни разходи / бюджет × 100
- Датите (начало/край) се извличат автоматично от датите на подзадачите
- Може да бъде свързан с етап от продажбите (строителна фаза)
Листова задача
Листовата задача представлява конкретна работа с измеримо количество.
- Изисква мерна единица, количество и единична цена
- Процент на завършване се въвежда ръчно (изпълнено количество)
- Има конкретни начална и крайна дата
- Може да има зависимости от други задачи
Йерархия и дълбочина
Задачите се организират в дърво с ограничена дълбочина:
Ниво 0: Контейнер А ← корен (без родител)
Ниво 1: Контейнер А-1 ← под-контейнер
Ниво 2: Листова задача ← конкретна работа
Ниво 1: Листова задача ← конкретна работа
Ниво 0: Листова задача ← без контейнер
| Тип | Максимална дълбочина |
|---|---|
| Контейнер | Ниво 0 или 1 |
| Листова задача | Ниво 0, 1 или 2 |
Жизнен цикъл на задача
При промяна на статус се записва история с дата и потребител.
Каскадна промяна на статус при контейнери
Когато маркирате контейнер като Завършен, системата предлага автоматично да завърши всички подзадачи. Появява се диалог за потвърждение, показващ:
- Засегнати контейнери и листови задачи
- Незавършени листови задачи (изпълненото количество е по-малко от планираното)
Промяната на статус не се разпространява обратно — ако повторно отворите контейнер, подзадачите запазват своя статус.
Gantt диаграма
Задачите се визуализират като Gantt диаграма, която показва:
- Времевата линия на всяка задача
- Зависимости между задачи (стрелки)
- Планирани срещу действителни дати
- Процент на завършване
Зависимости в Gantt диаграмата
Задачите могат да зависят от завършването на предходни задачи. Зависимостите са от тип завърши→започни: задача Б може да започне едва когато задача А приключи.
Създаване на зависимост чрез плъзгане:
- Задръжте курсора над лентата на дадена задача — появява се кръгъл маркер вдясно.
- Кликнете и плъзнете маркера към целевата задача.
- Системата проверява за циклични зависимости и отказва невалидни връзки.
Изтриване на зависимост:
- Кликнете върху стрелката на зависимостта — тя се маркира в червено.
- Появява се бутон ×. Кликнете върху него, за да изтриете зависимостта.
Предупреждение при незавършени зависимости:
Ако се опитате да смените статуса на задача на „Започната", а нейните предходни задачи не са завършени, системата показва предупреждение с техния списък. Можете да продължите и да игнорирате зависимостта.
Преместване на задачи в Gantt диаграмата
Задачите могат да бъдат преместени в йерархията чрез плъзгане:
- Плъзнете задача отляво или надясно от друга задача, за да я направите съседна (на същото ниво).
- Плъзнете задача над друга задача, за да я направите дъщерна (дете).
- Ако плъзнете задача върху листова задача, системата ще предложи да конвертира целевата задача в контейнер.
Таблица с план на задачите
Режими на изглед
Таблицата предлага два режима, избираеми от падащото меню в лентата с инструменти:
| Режим | Описание |
|---|---|
| Своден изглед | Показва само задачите на текущото ниво. Кликването върху контейнер „пробива" навътре. |
| Плосък изглед | Показва всички задачи наведнъж (контейнери и листови). |
Навигация в сводния изглед
При „Своден изглед" таблицата показва само задачите на избраното ниво:
- Кликване върху контейнер — показва неговите дъщерни задачи.
- Хлебни трохи (breadcrumbs) над таблицата показват текущия път и позволяват навигация нагоре.
- Кликване върху листова задача — отваря страницата за редакция.
Колони в таблицата
| Колона | Контейнер | Листова задача |
|---|---|---|
| Наименование | получер текст | нормален текст |
| Статус | статус + каскадна промяна | статус |
| Начало | мин. от дъщерните задачи | начална дата |
| Край | макс. от дъщерните задачи | крайна дата |
| Бюджет | estimatedTotalCost (с индикатор ↘ при превишаване) | estimatedTotalCost |
| Бюджет на деца | withChildren.estimatedTotalCost | — |
| Мерна единица | — | мерна единица |
| Планирано кол. | — | estimatedAmount |
| Завършване | % (авт. изчислен) — само за четене | завършено кол. / планирано кол. |
| Действителна стойност | собствени + дъщерни разходи | действителни разходи |
| Зависимости | имена на предходни задачи | имена на предходни задачи |
| Строителна фаза | свързана фаза | — |
Индикатор за превишен бюджет (↘)
Показва се в колона „Бюджет" при контейнери и листови задачи, когато:
- Зададен е ръчен бюджет (Override), И
- Бюджетът е по-малък от сумата на подзадачите
Формат: 100,000 ↘20,000 (червен текст). При задържане на курсора: „Бюджет: 100,000 / Бюджет на деца: 120,000 / Превишение: 20,000".
Създаване на задача
- Отворете проекта и отидете в секция Задачи.
- Натиснете "Нова задача".
- Изберете типа: Контейнер или Листова задача.
- Попълнете полетата.
- Натиснете "Запази".
Полета на контейнер
| Поле | Описание | Задължително |
|---|---|---|
| Наименование | Името на контейнера | Да |
| Код | Кратък идентификатор (до 10 символа) | Не |
| Статус | Текущо състояние | Да |
| Начална дата | Ориентировъчна начална дата (незадължителна) | Не |
| Крайна дата | Ориентировъчна крайна дата (незадължителна) | Не |
| Бюджет | Вижте Бюджет на задача | Не |
| Описание | Допълнителен текст (до 2000 символа). Видим само в страницата за редакция. | Не |
| Строителна фаза | Свързване с фаза от продажбите | Не |
| Родителска задача | Контейнер, под който се създава (или корен) | Не |
Полета на листова задача
| Поле | Описание | Задължително |
|---|---|---|
| Наименование | Името на задачата | Да |
| Код | Кратък идентификатор (до 10 символа) | Не |
| Статус | Текущо състояние | Да |
| Начална дата | Планирана дата за започване | Да |
| Крайна дата | Планирана дата за завършване | Да |
| Мерна единица | Единица за измерване | Да |
| Планирано количество | Очаквано количество работа | Да |
| Единична цена | Цена за единица | Да |
| Планирани часове | Очаквани работни часове | Да |
| Описание | Допълнителен текст (до 2000 символа). Видим само в страницата за редакция. | Не |
| Бюджет | Вижте Бюджет на задача | Не |
| Родителска задача | Контейнер, под който се създава (или корен) | Не |
Бюджет на задача
Всяка задача (контейнер или листова) има поле Бюджет, което контролира стойността на estimatedTotalCost.
Автоматично изчисление (по подразбиране)
Когато квадратчето „Замяна на автоматично изчисления бюджет" не е отметнато:
| Тип задача | Формула за бюджет |
|---|---|
| Контейнер | Сума от бюджетите на всички дъщерни задачи |
| Листова задача | Планирано количество × Единична цена |
Ръчно задаване на бюджет (Override)
Когато квадратчето „Замяна на автоматично изчисления бюджет" е отметнато:
- Въведете желания бюджет в полето Бюджет.
- За листови задачи: полетата „Планирано количество", „Единична цена" и „Мерна единица" стават само за четене — те не влияят върху бюджета.
- За контейнери: бюджетът е фиксиран и не се актуализира при промяна на подзадачите.
За да върнете автоматичното изчисление: махнете отметката от квадратчето — бюджетът мигновено се изчислява отново.
Редакция и изтриване
- За редакция кликнете върху задачата в списъка или Gantt диаграмата.
- Промените в бюджета, статуса, зависимостите и другите полета се запазват след натискане на "Запази".
- За изтриване използвайте бутона "Изтрий" в детайлите на задачата.
Конвертиране на типа задача
Съществуваща задача може да бъде конвертирана от листова в контейнер и обратно от страницата за редакция (бутон "Конвертирай"):
| Конвертиране | Ефект |
|---|---|
| Листова → Контейнер | Изчистват се количество, единична цена и часове. Задачата може да приема дъщерни задачи. |
| Контейнер → Листова | Изчистват се всички връзки към дъщерни задачи. Възстановяват се полетата за количество/цена. Задачата не трябва да има деца. |
Зависимости между задачи
Зависимостите се управляват от секцията Зависимости при редакция на задача или чрез плъзгане в Gantt диаграмата.
- Всяка задача може да зависи от произволен брой предходни задачи.
- Системата открива и отказва циклични зависимости.
- Самозависимост не е разрешена.
Проследяване на разходи
За всяка задача системата автоматично изчислява и обобщава:
| Показател | Контейнер | Листова задача |
|---|---|---|
| Изработени часове | сума от дъщерните | от часовите отчети |
| Разходи за материали | сума от дъщерните | от фактури |
| Разходи за услуги | сума от дъщерните | от фактури |
| Разходи за труд | сума от дъщерните | от часовите отчети |
| Действителна обща стойност | собствени + дъщерни | собствена |
| Действителна единична цена | — | изчислена |
| Процент завършване | авт. (разходи/бюджет×100) | ръчно (кол./план.кол.) |
Bulk създаване от CSV
За бързо добавяне на много задачи наведнъж можете да импортирате от CSV файл.
- Подгответе CSV файл с колони за наименование, код, дати и другите полета.
- В секцията Задачи натиснете "Импорт от CSV".
- Изберете файла и прегледайте данните.
- Потвърдете импорта.
Импортираните задачи се създават като листови задачи на корен ниво.
Импорт на задачи от рецепта
За бързо създаване на групи от свързани задачи може да използвате библиотеката с рецепти. Рецептите са предварително дефинирани шаблони с йерархия, мерни единици, продължителности и ориентировъчни цени.
Достъп: само потребители с роля Собственик или Администратор.
Стъпка 1 — Избор на рецепта
- Отворете секция Задачи в проекта.
- В лентата с инструменти натиснете "Импортирай рецепта".
- Появява се диалог с дърво от всички налични рецепти (скритите не се показват):
- Рецепти с деца — показани с икона на папка.
- Листови рецепти (без деца) — показани с икона на документ.
- Кликнете върху желаната рецепта, за да я маркирате.
- Натиснете "Напред".
Стъпка 2 — Преглед и редакция
В стъпка 2 се показват всички задачи, които ще бъдат създадени:
| Поле | Описание |
|---|---|
| Родителска задача | Контейнер в проекта, под който да се добавят новите задачи (по избор). |
| Начална дата | Датата, от която стартира първата задача от рецептата. |
| Наименование | Предварително попълнено от рецептата. Редактируемо. |
| Код | Автоматично генериран от първите три съгласни на наименованието. Редактируем. |
| Описание | Автоматично попълнено от описанието на рецептата и бележките към под-елементите. Редактируемо. |
| Количество | Задължително за листови задачи — въвеждате го ръчно. |
| Единична цена | Предварително попълнена от рецептата. Редактируема. |
| Планирани часове | Изчислени от продължителността на рецептата (дни × 8). Редактируеми. |
| Начална/крайна дата | Автоматично каскадно изчислени от началната дата. Редактируеми. |
Включи/Изключи задача: всеки ред има чекбокс. При изключване на контейнер автоматично се изключват и всичките му деца.
Проверка на дълбочина: ако при избраната родителска задача някоя задача би надвишила максималната дълбочина, тя се маркира в червено. Бутонът „Импортирай" е деактивиран докато има нарушения.
Дати при импорт (каскадно изчисление)
- Контейнерът получава началната дата, зададена в диалога.
- Всяка следваща задача започва когато завършва предходната (последователно планиране).
- Крайната дата на контейнера е максималната крайна дата от всички деца.
Автоматично генериране на код
Кодът се генерира от първите три съгласни на наименованието (поддържат се латиница и кирилица, в горен регистър). При съвпадение с вече съществуващ код в проекта се добавя числов суфикс: „ФНД", „ФНД2", „ФНД3".
Завършване на импорта
Натиснете "Импортирай". При успех диалогът се затваря, таблицата с задачи се обновява и се показва съобщение с броя на импортираните задачи.
Бюджетът на новосъздадените контейнери първоначално показва 0 и се изчислява автоматично от системата след няколко секунди.
Автоматично управление на действителни дати
Системата автоматично попълва Действителна начална дата и Действителна крайна дата при настъпване на ключови събития.
Действителна начална дата
| Тип задача | Кога се попълва автоматично |
|---|---|
| Листова задача | При първата покупка на материал, свързана с тази задача |
| Контейнер | Минималната от действителните начални дати на дъщерните задачи |
Важно: Полето се попълва само ако е празно. Веднъж зададено, не се преизчислява автоматично. При нужда от корекция — редактирайте ръчно.
Действителна крайна дата
| Тип задача | Кога се попълва автоматично |
|---|---|
| Листова задача | При смяна на статуса на „Завършена" (записва се текущата дата) |
| Контейнер | При смяна на статуса на „Завършена" или автоматично от максималната крайна дата на дъщерните задачи |
Важно: Полето се попълва само ако е празно. Ако вече е зададено, не се презаписва при повторно завършване.
Вижте също
- Библиотека с рецепти — създаване и управление на шаблони за задачи