• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/bizproc/document/task.php
  • Класс: BitrixTasksIntegrationBizprocDocumentTask
  • Вызов: Task::getDocumentFields
static function getDocumentFields($documentType)
{
	$fields = [
		'ID' => [
			'Name' => 'ID',
			'Type' => 'int',
		],
		'TITLE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_TITLE'),
			'Type' => 'string',
			'Editable' => true
		],
		'DESCRIPTION' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_DESCRIPTION'),
			'Type' => 'text',
			'Editable' => true
		],
		'IS_IMPORTANT' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_IS_IMPORTANT'),
			'Type' => 'bool',
			'Editable' => true
		],
		'STATUS' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_STATUS'),
			'Type' => 'select',
			//'Editable' => true,
			'Options' => [
				Status::PENDING => Loc::getMessage('TASKS_BP_DOCUMENT_STATUS_PENDING_1'),
				Status::IN_PROGRESS => Loc::getMessage('TASKS_BP_DOCUMENT_STATUS_IN_PROGRESS'),
				Status::SUPPOSEDLY_COMPLETED => Loc::getMessage('TASKS_BP_DOCUMENT_STATUS_SUPPOSEDLY_COMPLETED'),
				Status::COMPLETED => Loc::getMessage('TASKS_BP_DOCUMENT_STATUS_COMPLETED'),
				Status::DEFERRED => Loc::getMessage('TASKS_BP_DOCUMENT_STATUS_DEFERRED'),
			],
		],
		'RESPONSIBLE_ID' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_RESPONSIBLE_ID'),
			'Type' => 'user',
			//'Editable' => true
		],
		'DATE_START' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_DATE_START'),
			'Type' => 'datetime',
		],
		'DURATION_PLAN' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_DURATION_PLAN'),
			'Type' => 'int',
		],
		'DURATION_FACT' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_DURATION_FACT'),
			'Type' => 'int',
		],
		'TIME_ESTIMATE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_TIME_ESTIMATE'),
			'Type' => 'int',
			//'Editable' => true
		],
		'DEADLINE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_DEADLINE'),
			'Type' => 'datetime',
			'Editable' => true
		],
		'START_DATE_PLAN' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_START_DATE_PLAN'),
			'Type' => 'datetime',
			'Editable' => true
		],
		'END_DATE_PLAN' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_END_DATE_PLAN'),
			'Type' => 'datetime',
			'Editable' => true
		],
		'IS_EXPIRED' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_IS_EXPIRED'),
			'Type' => 'bool',
		],
		'CREATED_BY' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_CREATED_BY'),
			'Type' => 'user',
		],
		'CREATED_DATE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_CREATED_DATE'),
			'Type' => 'datetime',
		],
		'CHANGED_BY' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_CHANGED_BY'),
			'Type' => 'user',
		],
		'CHANGED_DATE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_CHANGED_DATE'),
			'Type' => 'datetime',
		],
		'CLOSED_BY' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_CLOSED_BY'),
			'Type' => 'user',
		],
		'CLOSED_DATE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_CLOSED_DATE'),
			'Type' => 'datetime',
		],
		'MARK' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_MARK'),
			'Type' => 'select',
			'Editable' => true,
			'Options' => [
				Mark::POSITIVE => Loc::getMessage('TASKS_BP_DOCUMENT_MARK_POSITIVE'),
				Mark::NEGATIVE => Loc::getMessage('TASKS_BP_DOCUMENT_MARK_NEGATIVE')
			]
		],
		'ALLOW_CHANGE_DEADLINE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_ALLOW_CHANGE_DEADLINE'),
			'Type' => 'bool',
			'Editable' => true,
		],
		'ALLOW_TIME_TRACKING' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_ALLOW_TIME_TRACKING'),
			'Type' => 'bool',
			'Editable' => true
		],
		'MATCH_WORK_TIME' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_MATCH_WORK_TIME'),
			'Type' => 'bool',
		],
		'TASK_CONTROL' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_TASK_CONTROL'),
			'Type' => 'bool',
			'Editable' => true
		],
		'ADD_IN_REPORT' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_ADD_IN_REPORT'),
			'Type' => 'bool',
			//'Editable' => true
		],
		'GROUP_ID' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_GROUP_ID_INT'),
			'Type' => 'int',
			//'Editable' => true
		],
		'GROUP_ID_PRINTABLE' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_GROUP_ID_PRINTABLE'),
			'Type' => 'string',
		],
		'PARENT_ID' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_PARENT_ID'),
			'Type' => 'int',
		],
		'ACCOMPLICES' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_ACCOMPLICES'),
			'Type' => 'user',
			'Editable' => true,
			'Multiple' => true,
		],
		'AUDITORS' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_AUDITORS'),
			'Type' => 'user',
			'Editable' => true,
			'Multiple' => true,
		],
		'TAGS' => [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_TAGS'),
			'Type' => 'string',
			'Editable' => true,
			'Multiple' => true,
		],
	];

	if (isset($documentType) && (self::isPlanTask($documentType) || self::isPersonalTask($documentType)))
	{
		$fields['MEMBER_ROLE'] = [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_MEMBER_ROLE'),
			'Type' => 'select',
			'Options' => [
				'O' => Loc::getMessage('TASKS_BP_DOCUMENT_MEMBER_ROLE_O'),
				'R' => Loc::getMessage('TASKS_BP_DOCUMENT_MEMBER_ROLE_R'),
				'A' => Loc::getMessage('TASKS_BP_DOCUMENT_MEMBER_ROLE_A'),
				'U' => Loc::getMessage('TASKS_BP_DOCUMENT_MEMBER_ROLE_U'),
			]
		];
	}

	if (MainLoader::includeModule('forum'))
	{
		$fields['COMMENT_RESULT'] = [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_COMMENT_RESULT'),
			'Type' => 'text',
			//'Editable' => true,
			'Multiple' => true,
		];
		$fields['COMMENT_RESULT_LAST'] = [
			'Name' => Loc::getMessage('TASKS_BP_DOCUMENT_COMMENT_RESULT_LAST'),
			'Type' => 'text',
			//'Editable => true,
			'Multiple' => false,
		];

	}

	return array_merge($fields, self::getFieldsCreatedByUser());
}