• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::getFieldsInfo
static function getFieldsInfo($getUf = true): array
{
	global $USER_FIELD_MANAGER;

	$fields = [
		'ID' => [
			'type' => 'integer',
			'primary' => true,
		],
		'PARENT_ID' => [
			'type' => 'integer',
			'default' => 0,
		],
		'TITLE' => [
			'type' => 'string',
			'required' => true,
		],
		'DESCRIPTION' => [
			'type' => 'string',
		],
		'MARK' => [
			'type' => 'enum',
			'values' => [
				Mark::NEGATIVE => Loc::getMessage('TASKS_FIELDS_MARK_NEGATIVE'),
				Mark::POSITIVE => Loc::getMessage('TASKS_FIELDS_MARK_POSITIVE'),
			],
			'default' => null,
		],
		'PRIORITY' => [
			'type' => 'enum',
			'values' => [
				Priority::HIGH => Loc::getMessage('TASKS_FIELDS_PRIORITY_HIGH'),
				Priority::AVERAGE => Loc::getMessage('TASKS_FIELDS_PRIORITY_AVERAGE'),
				Priority::LOW => Loc::getMessage('TASKS_FIELDS_PRIORITY_LOW'),
			],
			'default' => Priority::AVERAGE,
		],
		'STATUS' => [
			'type' => 'enum',
			'values' => [
				Status::PENDING => Loc::getMessage('TASKS_FIELDS_STATUS_PENDING'),
				Status::IN_PROGRESS => Loc::getMessage('TASKS_FIELDS_STATUS_IN_PROGRESS'),
				Status::SUPPOSEDLY_COMPLETED => Loc::getMessage('TASKS_FIELDS_STATUS_SUPPOSEDLY_COMPLETED'),
				Status::COMPLETED => Loc::getMessage('TASKS_FIELDS_STATUS_COMPLETED'),
				Status::DEFERRED => Loc::getMessage('TASKS_FIELDS_STATUS_DEFERRED'),
			],
			'default' => Status::PENDING,
		],
		'MULTITASK' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'NOT_VIEWED' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'REPLICATE' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'GROUP_ID' => [
			'type' => 'integer',
			'default' => 0,
		],
		'STAGE_ID' => [
			'type' => 'integer',
			'default' => 0,
		],
		'CREATED_BY' => [
			'type' => 'integer',
			'required' => true,
		],
		'CREATED_DATE' => [
			'type' => 'datetime',
		],
		'RESPONSIBLE_ID' => [
			'type' => 'integer',
			'required' => true,
		],
		'ACCOMPLICES' => [
			'type' => 'array',
		],
		'AUDITORS' => [
			'type' => 'array',
		],
		'CHANGED_BY' => [
			'type' => 'integer',
		],
		'CHANGED_DATE' => [
			'type' => 'datetime',
		],
		'STATUS_CHANGED_BY' => [
			'type' => 'integer',
		],
		'STATUS_CHANGED_DATE' => [
			'type' => 'datetime',
		],
		'CLOSED_BY' => [
			'type' => 'integer',
			'default' => null,
		],
		'CLOSED_DATE' => [
			'type' => 'datetime',
			'default' => null,
		],
		'ACTIVITY_DATE' => [
			'type' => 'datetime',
			'default' => null,
		],
		'DATE_START' => [
			'type' => 'datetime',
			'default' => null,
		],
		'DEADLINE' => [
			'type' => 'datetime',
			'default' => null,
		],
		'START_DATE_PLAN' => [
			'type' => 'datetime',
			'default' => null,
		],
		'END_DATE_PLAN' => [
			'type' => 'datetime',
			'default' => null,
		],
		'GUID' => [
			'type' => 'string',
			'default' => null,
		],
		'XML_ID' => [
			'type' => 'string',
			'default' => null,
		],
		'COMMENTS_COUNT' => [
			'type' => 'integer',
			'default' => 0,
		],
		'SERVICE_COMMENTS_COUNT' => [
			'type' => 'integer',
			'default' => 0,
		],
		'NEW_COMMENTS_COUNT' => [
			'type' => 'integer',
			'default' => 0,
		],
		'ALLOW_CHANGE_DEADLINE' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'ALLOW_TIME_TRACKING' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'TASK_CONTROL' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'ADD_IN_REPORT' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'FORKED_BY_TEMPLATE_ID' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'TIME_ESTIMATE' => [
			'type' => 'integer',
		],
		'TIME_SPENT_IN_LOGS' => [
			'type' => 'integer',
		],
		'MATCH_WORK_TIME' => [
			'type' => 'integer',
		],
		'FORUM_TOPIC_ID' => [
			'type' => 'integer',
		],
		'FORUM_ID' => [
			'type' => 'integer',
		],
		'SITE_ID' => [
			'type' => 'string',
		],
		'SUBORDINATE' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => null,
		],
		'FAVORITE' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => null,
		],
		'EXCHANGE_MODIFIED' => [
			'type' => 'datetime',
			'default' => null,
		],
		'EXCHANGE_ID' => [
			'type' => 'integer',
			'default' => null,
		],
		'OUTLOOK_VERSION' => [
			'type' => 'integer',
			'default' => null,
		],
		'VIEWED_DATE' => [
			'type' => 'datetime',
		],
		'SORTING' => [
			'type' => 'double',
		],
		'DURATION_PLAN' => [
			'type' => 'integer',
		],
		'DURATION_FACT' => [
			'type' => 'integer',
		],
		'CHECKLIST' => [
			'type' => 'array',
		],
		'DURATION_TYPE' => [
			'type' => 'enum',
			'values' => [
				'secs',
				'mins',
				'hours',
				'days',
				'weeks',
				'monts',
				'years',
			],
			'default' => 'days',
		],
		'IS_MUTED' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'IS_PINNED' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
		'IS_PINNED_IN_GROUP' => [
			'type' => 'enum',
			'values' => [
				'Y' => Loc::getMessage('TASKS_FIELDS_Y'),
				'N' => Loc::getMessage('TASKS_FIELDS_N'),
			],
			'default' => 'N',
		],
	];

	foreach ($fields as $fieldId => &$fieldData)
	{
		$fieldData = array_merge(['title' => Loc::getMessage('TASKS_FIELDS_' . $fieldId)], $fieldData);
	}
	unset($fieldData);

	if ($getUf)
	{
		$uf = $USER_FIELD_MANAGER->GetUserFields('TASKS_TASK', 0, LANGUAGE_ID);
		foreach ($uf as $key => $item)
		{
			$fields[$key] = [
				'title' => $item['EDIT_FORM_LABEL'],
				'type' => $item['USER_TYPE_ID'],
			];
		}
	}

	return $fields;
}