Документация для разработчиков
Темная тема

GetList

Описание и параметры

record set
CTicket::GetList(
	varchar &by,
	varchar &order,
	array arFilter=array(),
	boolean &is_filtered,
	char(1) checkRights="Y",
	char(1) getUserName="Y",
);

Метод предназначен для получения списка обращений в техподдержку. Метод нестатический.

Параметры метода

ПараметрОписаниеС версии
by Идентификатор, позволяющий задать имя поля для сортировки. Допустимы следующие значения:
  • s_id - по ID
  • s_lid - по сайту, для которого было создано обращение
  • s_lamp - по индикатору
  • s_date_create - по дате создания
  • s_timestamp - по дате изменения
  • s_date_close - по дате закрытия
  • s_owner - по автору
  • s_modified_by - по ID пользователя - изменившего обращение
  • s_title - по заголовку
  • s_responsible - по ID ответственного
  • s_messages - по количеству сообщений
  • s_category - по ID категории
  • s_criticality - по ID критичности
  • s_status - по ID статуса
  • s_mark - по ID оценки
  • s_online - по количеству пользователей
order Порядок сортировки. Допустимы следующие значения:
  • desc - по убыванию (значение по умолчанию)
  • asc - по возрастанию
arFilter Массив для фильтрации значений. Необязательный параметр. В массиве допустимы следующие индексы:
  • ID - ID обращения (допускается сложная логика)
  • ID_EXACT_MATCH - "Y" - при фильтрации по ID обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LID - ID сайта
  • LID_EXACT_MATCH - "Y" - при фильтрации по ID языка будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAMP - массив индикаторов: "red", "yellow", "green", "green_s", "grey"
  • DATE_CREATE_1 - левая часть интервала для даты создания обращения
  • DATE_CREATE_2 - правая часть интервала для даты создания обращения
  • DATE_TIMESTAMP_1 - левая часть интервала для даты модификации обращения
  • DATE_TIMESTAMP_2 - правая часть интервала для даты модификации обращения
  • DATE_CLOSE_1 - левая часть интервала для даты закрытия обращения
  • DATE_CLOSE_2 - правая часть интервала для даты закрытия обращения
  • AUTO_CLOSE_DAYS1 - левая часть интервала для количества дней по истечении которых обращение будет автоматически закрыто при отсутствии ответа от автора
  • AUTO_CLOSE_DAYS2 - правая часть интервала для количества дней по истечении которых обращение будет автоматически закрыто при отсутствии ответа от автора
  • TICKET_TIME_1 - левая часть интервала для количества дней прошедших с даты создания до даты закрытия обращения
  • TICKET_TIME_2 - правая часть интервала для количества дней прошедших с даты создания до даты закрытия обращения
  • TITLE - заголовок обращения (допускается сложная логика)
  • TITLE_EXACT_MATCH - "Y" - при фильтрации по заголовку обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MESSAGES1 - левая часть интервала для количества сообщений в обращении
  • MESSAGES2 - правая часть интервала для количества сообщений в обращении
  • OWNER - автор обращения, поиск осуществляется по ID пользователя, логину, имени, фамилии, символному коду (допускается сложная логика)
  • OWNER_EXACT_MATCH - "Y" - при фильтрации по автору обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • CREATED_BY - кем было создано обращение, поиск осуществляется по ID пользователя, логину, имени, фамилии, названии модуля из которого было создано обращение (допускается сложная логика)
  • CREATED_BY_EXACT_MATCH - "Y" - при фильтрации по создателю обращения будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MODIFIED_BY - изменивший обращение, поиск осуществляется по ID пользователя, логину, имени, фамилии, названии модуля из которого было изменено обращение (допускается сложная логика)
  • MODIFIED_BY_EXACT_MATCH - "Y" - при фильтрации по символьному коду статуса будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • RESPONSIBLE - ответственный за обращение, поиск осуществляется по ID пользователя, логину, имени, фамилии (допускается сложная логика)
  • RESPONSIBLE_EXACT_MATCH - "Y" - при фильтрации по ответственному за обращение будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • RESPONSIBLE_ID - ID пользователя ответственного за обращение, при задании "0" будут выбраны только те обращения у которых нет ответственного
  • CATEGORY - ID категории обращения (0 - без категории)
  • CATEGORY_SID - символьный код категории обращения (допускается сложная логика)
  • CATEGORY_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду категории будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • CRITICALITY - ID критичности обращения (0 - без критичности)
  • CRITICALITY_SID - символьный код критичности обращения (допускается сложная логика)
  • CRITICALITY_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду критичности будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • STATUS - ID статуса обращения (0 - без статуса)
  • STATUS_SID - символьный код статуса обращения (допускается сложная логика)
  • STATUS_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду статуса будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MARK_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду оценки ответа будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MARK - ID оценки ответов (0 - без оценки)
  • MARK_SID - символьный код оценки ответов (допускается сложная логика)
  • SOURCE - ID источника (0 - источник "web")
  • SOURCE_SID - символьный код источника (допускается сложная логика)
  • SOURCE_SID_EXACT_MATCH - "Y" - при фильтрации по символьному коду источника будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • MESSAGE - текст сообщения (допускается сложная логика)
  • MESSAGE_EXACT_MATCH - "Y" - при фильтрации по сообщению будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAST_MESSAGE_USER_ID - ID пользователя написавшего последнее сообщение в обращении (допускается сложная логика)
  • LAST_MESSAGE_USER_ID_EXACT_MATCH - "Y" - при фильтрации по ID пользователя написавшего последнее сообщение в обращении будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • LAST_MESSAGE_SID - символьный идентификатор написавшего последнее сообщение в обращении (если источник "email", то это может быть email, если источник "телефон", то это может быть номер телефона) (допускается сложная логика)
  • LAST_MESSAGE_SID_EXACT_MATCH - "Y" - при фильтрации по символьному идентификатору пользователя написавшего последнее сообщение в обращении будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • SUPPORT_COMMENTS - комментарий техподдержки, видимый в стандартных формах только для пользователей входящих в группу техподдержки
  • SUPPORT_COMMENTS_EXACT_MATCH - "Y" - при фильтрации по ID пользователя написавшего последнее сообщение в обращении будет искаться точное совпадение (по умолчанию); "N" - в противном случае будет искаться вхождение
  • SITE_ID - идентификатор сайта
  • CLOSE - Y\N - закрыт тикет, или нет
  • S_SPAM - Y\N - флаг, является ли тикет спамом
  • IS_OVERDUE - Y\N - флаг, просрочен ли тикет.
  • SLA_ID - по ID уровня техподдержки (допускается сложная логика).
  • SUPPORTTEAM_GROUP_ID - по ID группы техподдержки (число или массив чисел).
  • CLIENT_GROUP_ID - Y\N - по ID группы клиентов (число или массив чисел).
is_filtered Переменная возвращающая true в том случае если список результатов отфильтрован по какому либо критерию; либо false в противном случае. Изменен на isFiltered c 12.0.0
checkRights Необязательный параметр. "Y" - будут выбраны только те обращения которые текущий пользователь может просматривать (по умолчанию); "N" - выбирать все обращения независимо от прав текущего пользователя. До версии 12.0.0 назывался check_rights. 3.3.9
getUserName Необязательный параметр. "Y" - при выборке обращений будут также выбраны такие поля как OWNER_LOGIN, OWNER_NAME, RESPONSIBLE_LOGIN, RESPONSIBLE_NAME, MODIFIED_LOGIN, MODIFIED_NAME, LAST_MESSAGE_LOGIN, LAST_MESSAGE_NAME, CREATED_LOGIN, CREATED_EMAIL, CREATED_NAME, описывающие параметры пользователей имевших отношение к данному обращению (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. До версии 12.0.0 назывался get_user_name. 3.3.15
get_dictionary_name Необязательный параметр. "Y" - при выборке обращений будут также выбраны такие поля как CATEGORY_NAME, CATEGORY_SID, CRITICALITY_NAME, CRITICALITY_SID, STATUS_NAME, STATUS_SID, MARK_NAME, MARK_SID, SOURCE_NAME, SOURCE_SID, описывающие поля из справочника техподдержки (по умолчанию); "N" - вышеперечисленные поля не будут выбраны, но зато это ускорит работу метода. Удален с 4.0.6 3.3.15
lang Двухсимвольный код языка в формате которого необходимо выбрать временные параметры обращения (время создания, изменения, закрытия); необязательный параметр, по умолчанию - код текущего сайта. Удален с 4.0.0 3.3.15
siteID Необязательный параметр. Значение по умолчанию - "false". До версии 12.0.0 назывался site_id. 4.0.0
getExtraNames Необязательный параметр. Значение по умолчанию - "Y". 4.0.6
arParams Необязательный параметр. 12.0.0

Примеры использования

<?
$FilterArr = Array(
	"find_id",
	"find_lid",
	"find_lamp",
	"find_date_create1",
	"find_date_create2",
	"find_date_timestamp1",
	"find_date_timestamp2",
	"find_date_close1",
	"find_date_close2",
	"find_close",
	"find_ticket_time_1",
	"find_ticket_time_2",
	"find_title",
	"find_messages1",
	"find_messages2",
	"find_owner",
	"find_created_by",
	"find_responsible",
	"find_responsible_id",
	"find_category_id",
	"find_criticality_id",
	"find_status_id",
	"find_mark_id",
	"find_source_id",
	"find_modified_by",
	"find_message"
);
if (strlen($set_filter)>0) InitFilterEx($FilterArr,"TICKET_LIST","set",true); else InitFilterEx($FilterArr,"TICKET_LIST","get",true);
if (strlen($del_filter)>0) DelFilterEx($FilterArr,"TICKET_LIST",true);
if (CheckFilter())
{
	$arFilter = Array(
		"ID"                => $find_id,
		"LID"               => $find_lid,
		"LAMP"              => $find_lamp,
		"DATE_CREATE_1"     => $find_date_create1,
		"DATE_CREATE_2"     => $find_date_create2,
		"DATE_TIMESTAMP_1"  => $find_date_timestamp1,
		"DATE_TIMESTAMP_2"  => $find_date_timestamp2,
		"DATE_CLOSE_1"      => $find_date_close1,
		"DATE_CLOSE_2"      => $find_date_close2,
		"CLOSE"             => $find_close,
		"TICKET_TIME_1"     => $find_ticket_time_1,
		"TICKET_TIME_2"     => $find_ticket_time_2,
		"TITLE"             => $find_title,
		"MESSAGES1"         => $find_messages1,
		"MESSAGES2"         => $find_messages2,
		"OWNER"             => $find_owner,
		"CREATED_BY"        => $find_created_by,
		"RESPONSIBLE"       => $find_responsible,
		"RESPONSIBLE_ID"    => $find_responsible_id,
		"CATEGORY"          => $find_category_id,
		"CRITICALITY"       => $find_criticality_id,
		"STATUS"            => $find_status_id,
		"MARK"              => $find_mark_id,
		"SOURCE"            => $find_source_id,
		"MODIFIED_BY"       => $find_modified_by,
		"MESSAGE"           => $find_message
	);
}
$tickets = CTicket::GetList($by, $order, $arFilter, $is_filtered);
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Николай Складанюк
Группы к которым принадлежит пользователь можно получить следующим способом:
Код
$rsGroups = CSupportUserGroup::GetUserGroupList(array('GROUP_NAME' =>'ASC'), array('USER_ID' => $USER->GetID(), '=IS_TEAM_GROUP' => 'Y'));
while ($arGroup = $rsGroups->Fetch()) {
    $arGroups[] = $arGroup;
}
1
Александр Федотов
пример множественной фильтрации по символьному коду статуса (STATUS_SID).

Задача: отобрать тикеты по нескольким статусам сразу.
Проблема в том, что такие поля, как STATUS_SID, STATUS и др. не могут фильтровать данные, если на вход подать массив, например "STATUS_SID" =>array("A","F") ). Вместо этого фильтр должен выглядеть следующим образом: "STATUS_SID" => "A|F"
пример кода целиком:
Код
$rs = CTicket::GetList($by="ID", $order="asc", array("STATUS_SID" => "A|F", "STATUS_SID_EXACT_MATCH"=>"Y" ) );
 
 while($ar = $rs->Fetch()) 
 {
      echo '<pre>';
      print_r($ar);
      echo '</pre>';
 }

P.S. спасибо техподдержке за помощь.
2
ckv
Если нужно выбрать значения пользовательских свойств для обращений (например мы создали свойство "Гарантийный случай" UF_WARRANTY). Запрос выберет значения всех пользовательских свойств.

Код
CModule::IncludeModule('support');

 $rs = CTicket::GetList(
 $by="ID", 
 $order="asc",
 array(),
 $isFiltered,
 "Y",
 "Y",
 "Y",
 false,
 Array("SELECT" => array("UF_*" ))
 );

 while($ar = $rs->Fetch()) 
 {
 echo '<pre>';
 print_r($ar);
 echo '</pre>';
 }

Спасибо сотруднику техподдержки Корякину Александру
3
wikkk
Получить обращения, созданные в период с 30.11.2012 по 2.12.2012:

Код
$arFilter = Array(
   "DATE_CREATE_1"=> '30.11.2012',
   "DATE_CREATE_2"=> '02.12.2012',
);
 
0
Дмитрий Кубицкий
Чтобы выбрать список обращений определенной группы пользователей удобно указать фильтрацию по группам Техподдержки
Заходим Сервисы->Техподдержка->Группы, создаем группу, добавляем пользователей
Затем в фильтре указываем:

Код
$arFilter["SUPPORTTEAM_GROUP_ID"] = 3; // Если в флаг "Группа сотрудников техподдержки" установлен (флаг устанавливается на форме редактирования группы)
$arFilter["CLIENT_GROUP_ID"] = 3; // Если флаг не установлен - по умолчанию группа клиентов техподдержки
2
Василий Журавлев
Пример выборки незакрытых просроченных обращений:
Код
CModule::IncludeModule('support');
$by = "s_id";    // обязательно используем переменные,
$order = "asc"; // т.к. константы в параметрах работать не будут
$arFilter = array(
    "CLOSE" => "N", // незакрытые обращения
);
$rs = CTicket::GetList($by, $order, $arFilter); 

while($ar = $rs->GetNext())
{
     if($ar["IS_OVERDUE"] == "Y") // просроченное
     {
      echo '<pre>';
      print_r($ar);
      echo '</pre>';
     }
}
Спасибо техподдержке... помогла разобраться. :)

**************************
Комментарий от разработчика:
Фильтровать значения по флагу IS_OVERDUE (просроченные) можно будет начиная с версии support 11.0.1:
Пример:
Код
 $arFilter = array(
    "CLOSE" => "N", // не закрытые обращения
    "IS_OVERDUE" => "N", // не просроченные обращения
);
$rs = CTicket::GetList($by = "s_id", $order = "asc", $arFilter); 
while($arTicket = $rs->GetNext())
{
    echo '<pre>'.print_r($arTicket, 1).'</pre>';   
}
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх