protected static function GetFields()
 {
     if (!isset(self::$FIELDS)) {
         $ownerJoin = 'LEFT JOIN b_user U1 ON T.OWNER_ID = U1.ID';
         self::$FIELDS = array('ID' => array('FIELD' => 'T.ID', 'TYPE' => 'int'), 'OWNER_ID' => array('FIELD' => 'T.OWNER_ID', 'TYPE' => 'int'), 'OWNER_LOGIN' => array('FIELD' => 'U1.LOGIN', 'TYPE' => 'string', 'FROM' => $ownerJoin), 'OWNER_NAME' => array('FIELD' => 'U1.NAME', 'TYPE' => 'string', 'FROM' => $ownerJoin), 'OWNER_LAST_NAME' => array('FIELD' => 'U1.LAST_NAME', 'TYPE' => 'string', 'FROM' => $ownerJoin), 'OWNER_SECOND_NAME' => array('FIELD' => 'U1.SECOND_NAME', 'TYPE' => 'string', 'FROM' => $ownerJoin), 'ENTITY_TYPE_ID' => array('FIELD' => 'T.ENTITY_TYPE_ID', 'TYPE' => 'int'), 'SCOPE' => array('FIELD' => 'T.SCOPE', 'TYPE' => 'int'), 'IS_ACTIVE' => array('FIELD' => 'T.IS_ACTIVE', 'TYPE' => 'char'), 'TITLE' => array('FIELD' => 'T.TITLE', 'TYPE' => 'string'), 'EMAIL_FROM' => array('FIELD' => 'T.EMAIL_FROM', 'TYPE' => 'string'), 'SUBJECT' => array('FIELD' => 'T.SUBJECT', 'TYPE' => 'string'), 'BODY' => array('FIELD' => 'T.BODY', 'TYPE' => 'string'), 'SING_REQUIRED' => array('FIELD' => 'T.SING_REQUIRED', 'TYPE' => 'char'), 'SORT' => array('FIELD' => 'T.SORT', 'TYPE' => 'int'), 'CREATED' => array('FIELD' => 'T.CREATED', 'TYPE' => 'datetime'), 'LAST_UPDATED' => array('FIELD' => 'T.LAST_UPDATED', 'TYPE' => 'datetime'), 'AUTHOR_ID' => array('FIELD' => 'T.AUTHOR_ID', 'TYPE' => 'int'), 'EDITOR_ID' => array('FIELD' => 'T.EDITOR_ID', 'TYPE' => 'int'));
     }
     return self::$FIELDS;
 }