GetList
Метод устарел. Используйте методы класса OrderBase.
Описание и параметры
CDBResult CSaleOrderProps::GetList( array arOrder = array(), array arFilter = array(), array arGroupBy = false, array arNavStartParams = false, array arSelectFields = array() );
Метод возвращает результат выборки из свойств заказов в соответствии со своими параметрами. Нестатический метод.
Параметры вызова
| Параметр | Описание |
|---|---|
| arOrder | Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array( "название_поля1" => "направление_сортировки1", "название_поля2" => "направление_сортировки2", . . . )В качестве "название_поляN" может стоять любое поле местоположения, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию). Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.). Значение по умолчанию - пустой массив array() - означает, что результат отсортирован не будет. |
| arFilter | Массив, в соответствии с которым фильтруются
записи свойств заказа. Массив имеет вид:
array( "[модификатор1][оператор1]название_поля1" => "значение1", "[модификатор2][оператор2]название_поля2" => "значение2", . . . )Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются. Допустимыми являются следующие модификаторы:
Пример фильтра: array( "REQUIED" => "Y" )Этот фильтр означает "выбрать все записи, в которых значение в поле REQUIED (обязательно для заполнения) равно Y". Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет. |
| arGroupBy | Массив полей, по которым группируются записи
свойств заказа. Массив имеет вид:
array( "название_поля1", "группирующая_функция2" => "название_поля2", . . . )В качестве "название_поляN" может стоять любое поле свойств заказа. В качестве группирующей функции могут стоять:
Значение по умолчанию - false - означает, что результат группироваться не будет. |
| arNavStartParams | Массив параметров выборки. Может содержать следующие ключи:
|
| arSelectFields | Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение
"*", то будут возвращены все доступные поля. Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса. |
Возвращаемые значения
Возвращается объект класса CDBResult, содержащий набор ассоциативных массивов параметров свойств с ключами:
| Ключ | Описание |
|---|---|
| ID | Код свойства заказа. |
| PERSON_TYPE_ID | Тип плательщика. |
| NAME | Название свойства. |
| TYPE | Тип свойства. Допустимые значения:
|
| REQUIED | Флаг (Y/N) обязательное ли поле. |
| DEFAULT_VALUE | Значение по умолчанию. |
| SORT | Индекс сортировки. |
| USER_PROPS | Флаг (Y/N) входит ли это свойство в профиль покупателя. |
| IS_LOCATION | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта стоимости доставки (только для свойств типа LOCATION) |
| PROPS_GROUP_ID | Код группы свойств. |
| SIZE1 | Ширина поля (размер по горизонтали). |
| SIZE2 | Высота поля (размер по вертикали). |
| DESCRIPTION | Описание свойства. |
| IS_EMAIL | Флаг (Y/N) использовать ли значение свойства как E-Mail покупателя. |
| IS_PROFILE_NAME | Флаг (Y/N) использовать ли значение свойства как название профиля покупателя. |
| IS_PAYER | Флаг (Y/N) использовать ли значение свойства как имя плательщика. |
| IS_LOCATION4TAX | Флаг (Y/N) использовать ли значение свойства как местоположение покупателя для расчёта налогов (только для свойств типа LOCATION) |
| CODE | Символьный код свойства. |
Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.
Пример использования
<?
// Выведем форму для ввода свойств заказа для группы свойств с кодом 5, которые входят в профиль покупателя, для типа плательщика с кодом 2
$db_props = CSaleOrderProps::GetList(
array("SORT" => "ASC"),
array(
"PERSON_TYPE_ID" => 2,
"PROPS_GROUP_ID" => 5,
"USER_PROPS" => "Y"
),
false,
false,
array()
);
if ($props = $db_props->Fetch())
{
echo "Заполните параметры заказа:<br>";
do
{
echo $props["NAME"];
if ($props["REQUIED"]=="Y" ||
$props["IS_EMAIL"]=="Y" ||
$props["IS_PROFILE_NAME"]=="Y" ||
$props["IS_LOCATION"]=="Y" ||
$props["IS_LOCATION4TAX"]=="Y" ||
$props["IS_PAYER"]=="Y"
)
{
echo "*";
}
echo ": ";
if ($props["TYPE"]=="CHECKBOX")
{
echo '<input type="checkbox" class="inputcheckbox" name="ORDER_PROP_'.$props["ID"].'" value="Y"'.(($props["DEFAULT_VALUE"]=="Y")?" checked":"").'>';
}
elseif ($props["TYPE"]=="TEXT")
{
echo '<input type="text" class="inputtext" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:30).'" maxlength="250" value="'.htmlspecialchars($props["DEFAULT_VALUE"]).'" name="ORDER_PROP_'.$props["ID"].'">';
}
elseif ($props["TYPE"]=="SELECT")
{
echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">';
$db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"]));
while ($vars = $db_vars->Fetch())
{
echo '<option value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>';
}
echo '</select>';
}
elseif ($props["TYPE"]=="MULTISELECT")
{
echo '<select multiple name="ORDER_PROP_'.$props["ID"].'[]" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:5).'">';
$arDefVal = Split(",", $props["DEFAULT_VALUE"]);
for ($i = 0; $i<count($arDefVal); $i++)
$arDefVal[$i] = Trim($arDefVal[$i]);
$db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"]));
while ($vars = $db_vars->Fetch())
{
echo '<option value="'.$vars["VALUE"].'"'.(in_array($vars["VALUE"], $arDefVal)?" selected":"").'>'.htmlspecialchars($vars["NAME"]).'</option>';
}
echo '</select>';
}
elseif ($props["TYPE"]=="TEXTAREA")
{
echo '<textarea rows="'.((IntVal($props["SIZE2"])>0)?$props["SIZE2"]:4).'" cols="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:40).'" name="ORDER_PROP_'.$props["ID"].'">'.htmlspecialchars($props["DEFAULT_VALUE"]).'</textarea>';
}
elseif ($props["TYPE"]=="LOCATION")
{
echo '<select name="ORDER_PROP_'.$props["ID"].'" size="'.((IntVal($props["SIZE1"])>0)?$props["SIZE1"]:1).'">';
$db_vars = CSaleLocation::GetList(Array("SORT"=>"ASC", "COUNTRY_NAME_LANG"=>"ASC", "CITY_NAME_LANG"=>"ASC"), array(), LANGUAGE_ID);
while ($vars = $db_vars->Fetch())
{
echo '<option value="'.$vars["ID"].'"'.((IntVal($vars["ID"])==IntVal($props["DEFAULT_VALUE"]))?" selected":"").'>'.htmlspecialchars($vars["COUNTRY_NAME"]." - ".$vars["CITY_NAME"]).'</option>';
}
echo '</select>';
}
elseif ($props["TYPE"]=="RADIO")
{
$db_vars = CSaleOrderPropsVariant::GetList(($by="SORT"), ($order="ASC"), Array("ORDER_PROPS_ID"=>$props["ID"]));
while ($vars = $db_vars->Fetch())
{
echo '<input type="radio" name="ORDER_PROP_'.$props["ID"].'" value="'.$vars["VALUE"].'"'.(($vars["VALUE"]==$props["DEFAULT_VALUE"])?" checked":"").'>'.htmlspecialchars($vars["NAME"]).'<br>';
}
}
if (strlen($props["DESCRIPTION"])>0)
{
echo "<br><small>".$props["DESCRIPTION"]."</small>";
}
echo "<br>";
}
while ($props = $db_props->Fetch());
}
?>
© «Битрикс», 2001-2025, «1С-Битрикс», 2025