Информация будет полезна тем, кто хочет добавить свое дополнительное поле в форму «Добавить задачу» коробочной версии «1С-Битрикс24».
Задача, которая стояла: 1. Добавить дополнительное поле типа Список в форму «Добавить задачу» в коробочной версии «1С-Битрикс24». Поле обязательно к заполнению. 2. При выборе значения из списка необходимо, чтобы другое поле из формы «Добавить задачу» становилось обязательным для заполнения.
Решение пункта 1: 1.1. Переходим Панель администрирования -> Настройки -> Пользовательские поля 1.2. Нажимаем Добавить, выбираем Тип данных (тестировал только для Список)
1.3. Вся суть решения - Указать в поле Объект значение TASKS_TASK
1.4. Заполнить остальные поля. 1.5. Сохранить. 1.6. Перейти на страницу формы «Добавить задачу», посмотреть результат.
Решение пункта 2: 2.1 Создать событие в файле init.php AddEventHandler("tasks", "OnBeforeTaskAdd", Array("HosterKZ", "OnBeforeTaskAddHandler")); 2.2 Вывести в файл log.txt значения полей $arFields
function OnBeforeTaskAddHandler(&$arFields) { log_array($arFields); }
2.3 Дописать обработку обязательных полей с помощью $APPLICATION->ThrowException();
function OnBeforeTaskAddHandler(&$arFields) { //log_array($arFields); global $APPLICATION; if($arFields["UF_TASK_TYPE"]=="XY") { if(empty($arFields["SE_PROJECT"]["ID"])) { $APPLICATION->ThrowException("Не введено значение обязательного поля Проект."); return false; } } }
P.S. Не претендую на оригинальность и 100% правильность решения, но ничего полезного на эту тему в интернете я не нашел. Кроме этой статьи https://helpdesk.bitrix24.ru/open/2573061/
Да, но стоит обратить особое внимание на то, что при такой проверке создать задачу из шаблона будет невозможно: в шаблоне не выводятся пользовательские поля, а при создании из него оно соответственно не будет и заполнено.
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».