- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/lib/manager/task/projectdependence.php
- Класс: Bitrix\Tasks\Manager\Task\should
- Вызов: should::getListByParentEntity
static function getListByParentEntity($userId, $taskId, array $parameters = array()) { static::checkCanReadTaskThrowException($userId, $taskId); $data = array(); if($parameters['TYPE'] == self::ALL || $parameters['TYPE'] == self::OUTGOING) { throw new \Bitrix\Main\NotImplementedException('Only INGOING'); } if(!$parameters['DIRECT']) { throw new \Bitrix\Main\NotImplementedException('Only DIRECT'); } $listParameters = array( 'select' => array( 'DEPENDS_ON_ID', //'DIRECT', // system field, do not select //'MPCITY', // system field, do not select 'TASK_ID', 'TYPE', ), 'filter' => array('=DIRECT' => '1', '=TASK_ID' => $taskId) ); if ($parameters['DEPENDS_ON_DATA'] ?? null) { $listParameters['select'][static::SE_PREFIX.'DEPENDS_ON_TITLE'] = 'DEPENDS_ON.TITLE'; } // checking rights on dependent tasks $mixins = TaskTable::getRuntimeMixins( array( array( 'CODE' => 'CHECK_RIGHTS', 'USER_ID' => $userId, 'REF_FIELD' => 'DEPENDS_ON_ID', 'APPLY_FILTER'=>['ID'=> $taskId] ) ) ); if(!empty($mixins)) { $listParameters['runtime'] = $mixins; } $res = DependenceTable::getList($listParameters); while($item = $res->fetch()) { $seDependsOn = array(); foreach($item as $fld => $value) { if($fld == static::SE_PREFIX.'DEPENDS_ON_TITLE') { $seDependsOn['TITLE'] = $value; unset($item[$fld]); } } if(!empty($seDependsOn)) { $seDependsOn['ID'] = $item['DEPENDS_ON_ID']; $item[static::SE_PREFIX.'DEPENDS_ON'] = $seDependsOn; } if (isset($parameters['DROP_PRIMARY'])) { unset($item['TASK_ID']); } $data[] = $item; } return array('DATA' => $data, 'CAN' => array()); }