На проектах сталкиваемся с требованием сохранения базового плана проекта и анализа его исполнения и изменения в течении жизненного цикла проекта.
В стандартной конфигурации ELMA365 Проекты в диаграмме Ганта реализована функция "Сравнить с базовым", по умолчанию сравнение идет с текущей версией плана проекта. Основным сценарием использования является наложение отредактированного календарного плана с опубликованным.
В виджете диаграммы Ганта заложена возможность преопределения поля для хранения базового плана.
Предлагаю рассмотреть данную возможность на примере требования "Сохранить текущую опубликованную версию плана как базовый план для последующего сравнения и анализа".
Для этого необходимо:
1. Добавить в контекст приложения "Проект" добавить поле "Базовый план" (приложение "План проекта", Одиночное)
2. В конструкторе формы просмотра в настройках диаграммы Ганта установить связь в поле "Базовый план" с полем, созданным на шаге 1
3. Добавить кнопку на форму просмотра Проекта для вызова скрипта сохранения базового плана
4. Добавить скрипт для сохранения базового плана проекта
Код:
async function save_base_plan(): Promise<void> {
const project = await Application.search().size(10000).where(a=>a.__id.eq(Context.id)).first(); //поиск текущего проекта
if (project && Context.data._current_plan){
const current_plan = await Context.data._current_plan.fetch(); //получить текущий план
project.data.base_plan = current_plan; //записать план в проект
await project.save();
}
}
Теперь мы имеем возможность в любой момент зафиксировать опубликованный план проекта как Базовый план.
Наложение базового плана будет работать с добавленным в ходе реализации полем.
Дополнительно на кнопку можно добавить отображение только для руководителя проекта.
Также можно с помощью средств платформы решить более сложные требования по работе с базовыми планами: фиксировать любую версию плана проекта как базовый план, сохранять несколько базовых планов