@Fox_Ten

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

Столкнулся с проблемой, что в коробочной версии нет возможности запрета закрытия задач при незавершенных подзадачах. Наткнулся на Git "fedoseevvadim/bitrix24" вроде все понятно и просто, но при тестировании на своем Битриксе не получилось, файл init соответствует. Подскажите что именно нужно сделать, прописать, создать.
  • Вопрос задан
  • 94 просмотра
Пригласить эксперта
Ответы на вопрос 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. В этом обработчике вам нужно определять, является ли задача родительской. Если да, то запрашивать ее дочерние задачи и смотреть, если ли среди них открытые. Если да, то отменять событие закрытия задачи.
Список задач можно получить так
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы