• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/columnmanager.php
  • Класс: CTaskColumnList
  • Вызов: CTaskColumnList::get
static function get(array $parameters = array())
{
	static $cols;

	if($cols === null)
	{
		$cols = array(
			self::COLUMN_ID => array(
				'DB_COLUMN' => 'ID',
				'SORTABLE' => true
			),
			self::COLUMN_TITLE => array(
				'DB_COLUMN' => 'TITLE',
				'SORTABLE' => true
			),
			self::COLUMN_ORIGINATOR => array(
				'DB_COLUMN' => 'CREATED_BY',
				'SORTABLE' => true
			),
			self::COLUMN_RESPONSIBLE => array(
				'DB_COLUMN' => 'RESPONSIBLE_ID',
				'SORTABLE' => true
			),
			self::COLUMN_DEADLINE => array(
				'DB_COLUMN' => 'DEADLINE',
				'SORTABLE' => true
			),
			self::COLUMN_GRADE => array(
				'DB_COLUMN' => 'MARK',
				'SORTABLE' => true
			),
			self::COLUMN_PRIORITY => array(
				'DB_COLUMN' => 'PRIORITY',
				'SORTABLE' => true
			),
			self::COLUMN_STATUS => array(
				'DB_COLUMN' => 'STATUS'
			),
			self::COLUMN_GROUP_ID => array(
				'DB_COLUMN' => 'GROUP_ID'
			),
			self::COLUMN_TIME_ESTIMATE => array(
				'DB_COLUMN' => 'TIME_ESTIMATE',
				'SORTABLE' => true
			),
			self::COLUMN_ALLOW_TIME_TRACKING => array(
				'DB_COLUMN' => 'ALLOW_TIME_TRACKING',
				'SORTABLE' => true
			),
			self::COLUMN_TIME_SPENT_IN_LOGS => array(
				'DB_COLUMN' => 'TIME_SPENT_IN_LOGS'
			),
			self::COLUMN_ALLOW_CHANGE_DEADLINE => array(
				'DB_COLUMN' => 'ALLOW_CHANGE_DEADLINE',
				'SORTABLE' => true
			),
			self::COLUMN_CREATED_DATE => array(
				'DB_COLUMN' => 'CREATED_DATE',
				'SORTABLE' => true
			),
			self::COLUMN_CHANGED_DATE => array(
				'DB_COLUMN' => 'CHANGED_DATE',
				'SORTABLE' => true
			),
			self::COLUMN_CLOSED_DATE => array(
				'DB_COLUMN' => 'CLOSED_DATE',
				'SORTABLE' => true
			),
			self::COLUMN_UF_CRM => array(
				'DB_COLUMN' => 'UF_CRM_TASK'
			)
		);

		// add userfields, if any
		if(is_array($parameters['USER_FIELDS'] ?? null))
		{
			$userfields = $parameters['USER_FIELDS'];
		}
		else
		{
			// simply skip for backward compatibility
			$userfields = array();
		}

		$canSortFilterUf = Option::get('tasks', 'task_list_uf_sort_filter', false);
		$ufNames = array_keys($userfields);
		foreach($ufNames as $ufName)
		{
			if($ufName == 'UF_CRM_TASK') // already there actually
			{
				continue;
			}

			$cols[] = array(
				'DB_COLUMN' => $ufName,
				'SORTABLE' => $canSortFilterUf && in_array($userfields[$ufName]['USER_TYPE_ID'], array('integer', 'string', 'double', 'boolean', 'date', 'datetime', 'enumeration'))
			);
		}

	}

	return ($cols);
}