• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/item/task.php
  • Класс: BitrixTasksItemTask
  • Вызов: Task::generateMap
static function generateMap(array $parameters = array())
{
	$map = parent::generateMap(array(
		'EXCLUDE' => array(
			// deprecated
			'ZOMBIE' => true,

			// will be overwritten below
			'RESPONSIBLE_ID' => true,
			'CREATED_BY' => true,
		)
	));

	$map->placeFields(array(
		// override some tablet fields
		'RESPONSIBLE_ID' => new TaskFieldLegacyMemberOne(array(
			'NAME' => 'RESPONSIBLE_ID',

			'TYPE' => 'R', // todo: replace with constant

			'SOURCE' => FieldScalar::SOURCE_TABLET,
			'DB_READABLE' => false, // will be calculated from SE_MEMBER
			'OFFSET_GET_CACHEABLE' => false,
		)),
		'CREATED_BY' => new TaskFieldLegacyMemberOne(array(
			'NAME' => 'CREATED_BY',
			'TYPE' => 'O', // todo: replace with constant

			'SOURCE' => FieldScalar::SOURCE_TABLET,
			'DB_READABLE' => false, // will be calculated from SE_MEMBER
			'OFFSET_GET_CACHEABLE' => false,
		)),
		'ACCOMPLICES' => new TaskFieldLegacyMember(array(
			'NAME' => 'ACCOMPLICES',
			'TYPE' => 'A', // todo: replace with constant

			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
			'OFFSET_GET_CACHEABLE' => false,
		)),
		'AUDITORS' => new TaskFieldLegacyMember(array(
			'NAME' => 'AUDITORS',
			'TYPE' => 'U', // todo: replace with constant

			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
			'OFFSET_GET_CACHEABLE' => false,
		)),
		'TAGS' => new TaskFieldLegacyTag(array(
			'NAME' => 'TAGS',

			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
			'OFFSET_GET_CACHEABLE' => false,
		)),
		'DEPENDS_ON' => new TaskFieldLegacyDependsOn(array(
			'NAME' => 'DEPENDS_ON',
			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
		)),

		// todo: ACCOMPLICES, AUDITORS, SE_ACCOMPLICE, SE_AUDITOR, SE_ORIGINATOR, SE_RESPONSIBLE - just aliases for SE_MEMBER with filtering

		// sub-entity
		'SE_CHECKLIST' => new TaskFieldCheckList(array(
			'NAME' => 'SE_CHECKLIST',
			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
		)),
		'SE_MEMBER' => new TaskFieldMember(array(
			'NAME' => 'SE_MEMBER',
			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
		)),

		// ingoing gantt dependences
		'SE_PROJECTDEPENDENCE' => new TaskFieldProjectDependence(array(
			'NAME' => 'SE_PROJECTDEPENDENCE',
			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
		)),
		'SE_TAG' => new TaskFieldTag(array(
			'NAME' => 'SE_TAG',
			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
		)),
		'SE_PARAMETER' => new TaskFieldParameter(array(
			'NAME' => 'SE_PARAMETER',
			'SOURCE' => FieldScalar::SOURCE_CUSTOM,
		)),
	));

	return $map;
}