@Fox_Ten

Как сделать запрет закрытия задачи, если есть подзадачи в Битрикс24?

Столкнулся с проблемой, что в коробочной версии нет возможности запрета закрытия задач при незавершенных подзадачах. Наткнулся на Git "fedoseevvadim/bitrix24" вроде все понятно и просто, но при тестировании на своем Битриксе не получилось, файл init соответствует. Подскажите что именно нужно сделать, прописать, создать.
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Kontrael
Этот пример вам не подойдет. В нем иллюстрируется добавление пункта меню в сделки.
Файл init.php создается вручную в папке `/local/php_interface/`. Но прежде чем делать это, почитайте про него в курсе
Бездумное использование этого файла может приводить к падению сайта в любом месте.
Но в вашем случае, можно обойтись без него.
В вашем случае алгоритм действий такой:
1. Почитать про события.
2. Вам нужны события задач
Пример подключения обработчика события(это не готовый пример для вас, его нужно изменить под себя):
\Bitrix\Main\EventManager::getInstance()->RegisterEventHandler(
    'tasks',
    'OnBeforeTaskUpdate',
    $this->MODULE_ID,
    '\MyCompany\Handlers\CTask',
    'OnBeforeTaskUpdate',
    "1"
);

Подробнее про 'RegisterEventHandler' тут
Этот код можно выполнить в консоли, в админке. Но имейте ввиду, что удалять его нужно тоже выполнением кода или вручную в БД.
3. В этом обработчике вам нужно определять, является ли задача родительской. Если да, то запрашивать ее дочерние задачи и смотреть, если ли среди них открытые. Если да, то отменять событие закрытия задачи.
Список задач можно получить так
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы