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

    @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. В этом обработчике вам нужно определять, является ли задача родительской. Если да, то запрашивать ее дочерние задачи и смотреть, если ли среди них открытые. Если да, то отменять событие закрытия задачи.
    Список задач можно получить так
    Ответ написан
    Комментировать