• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/provider/taskprovider.php
  • Класс: BitrixTasksProviderTaskProvider
  • Вызов: TaskProvider::makeArSelect
private function makeArSelect(): self
{
	if (count($this->arSelect) <= 0 || in_array("*", $this->arSelect))
	{
		$this->arSelect = array_keys($this->arFields);
	}
	elseif (!in_array("ID", $this->arSelect))
	{
		$this->arSelect[] = "ID";
	}

	// add fields that are NOT selected by default
	//$this->arFields["FAVORITE"] = "CASE WHEN FVT.TASK_ID IS NULL THEN 'N' ELSE 'Y' END";

	// If DESCRIPTION selected, then BBCODE flag must be selected too
	if (
		in_array('DESCRIPTION', $this->arSelect)
		&& ( ! in_array('DESCRIPTION_IN_BBCODE', $this->arSelect) )
	)
	{
		$this->arSelect[] = 'DESCRIPTION_IN_BBCODE';
	}

	if (!IntegrationForum::isInstalled())
	{
		$this->arSelect = array_diff($this->arSelect, ['COMMENTS_COUNT', 'FORUM_ID', 'SERVICE_COMMENTS_COUNT']);
	}

	if ($this->deleteMessageId)
	{
		$this->arSelect = array_diff($this->arSelect, ['MESSAGE_ID']);
	}

	if (!array_key_exists('IM_CHAT_CHAT_ID', $this->arFilter))
	{
		$this->arSelect = array_diff($this->arSelect, ['IM_CHAT_ID', 'IM_CHAT_MESSAGE_ID', 'IM_CHAT_CHAT_ID', 'IM_CHAT_AUTHOR_ID']);
	}

	return $this;
}