На основе выбранного типа инфоблока, инфоблока и секции получает список элементов и формирует из него массив отсортированных начальных символов, по которому затем может осуществляться выборка. Для использования, просто, разместите компонент над компонентом bitrix.catalog.section, например. Имеется большое количество настроек.
Продаётся замечательный компонент 2.0 формирования вывода списка элементов инфоблока в виде матрицы -- yenisite.catalog.matrix
Область применения обширна. Используется для формирования: расписаний и графиков дежурств календарных планов (соревнований, праздников и т.д.) телепрограмм классификационных таблиц меню прайсов
Как это работает: Имеются элементы инфоблока с двумя произвольными свойствами (список, число, строка) В параметрах компонента мы выбираем свойство, значения которого будут формировать ось абсцис и свойство, значения которого будут формировать ось ординат. Имеющиеся, уникальные, для данного сочетания значений свойств, элементы будут вписываться на пересечении этих значений. Можно выбрать поля и свойства элемента, которые необходимо отобразить в ячейке.
Вот, пример формы для отправки сообщения, используя "почтовый шаблон" 1С-Битрикс. Чтобы значения заносились в поля ответов, нужно присвоить их value. Смотрите поле e-mail в примере.
PROPERTY_<код свойства> - фильтр по значениям свойств (можно искать по шаблону [%_]);
Например:
Код
// выборка активных элементов из информационного блока $yvalue,
// у которых установлено значение свойства с мнемоническим кодом SRC
// и дата начала автивности старше 1 января 2003 года
// выбранные элементы будут сгруппированы по дате активности
$arFilter = Array(
"IBLOCK_ID"=>145,
"ACTIVE"=>"Y",
"PROPERTY_COLOR"=>"%ний"
);
$res = CIBlockElement::GetList(Array("SORT"=>"ASC", "PROPERTY_PRIORITY"=>"ASC"), $arFilter);
while($ar_fields = $res->GetNext())
{
echo $ar_fields["NAME"]. "<br>";
}
1. Можно создать один инфоблок, а в нем свойства "оценка", "дата получения оценки", "получил стипендию", "дата получ. стип." идр. с галочкой "множественное" (Минусы -- легко запутаться в значенях свойств, если их будет много. Например, какая дата к какой оценки относится) 2. Можно в каждом инфоблоке завести свойство типа "привязка к элементу" и в каждом элементе осуществлять привязку к другому элементу. А при выводе данных в компоненте проверять это свойство, идти в привязаный элемент и брать от туда нужные для вывода свойства. 3. Можно в каждом разделе завести свойство типа "привязка к разделу". В этом случае привязка осуществляется один раз для всего инфоблока. Так же при выводе проверяешь к какому иб привязка, идешь туда, отфильтровываешь элементы по "ФИО" и вытаскиваешь нужные свойства из полученнго элемента.
Самым правильным мне видится способ 3. Думаю, во всех 3-х случаях, для вывода информации придеся писать свои компоненты -- стандартные не подойдут.
PS: Если кто-то еще какие-то способы знает, как объединять инфоблоки для построения общего отчета, буду рад узнать.
Можно создать еще один инфоблок, его элементы будут -- свойством. А в нужных инфоблоках сделать свойство типа "привязка к элементу".
Ну, вообще, "некрасивое решение". Если бы мы проектировали БД в Access, то в следующих таблицах, поле "ФИО" было бы связаным.
1. "студент", со свойствами: ФИО тел. номер адресс
2. "оценки студента", со свойствами: ФИО оценка дата
3. "стипендия студента", со свойствами: ФИО получил, руб дата
Инфоблоки используются, так же, для создания БД для веб. 1. Можно создать один инфоблок, а в нем множественые свойства "оценка", "дата получения оценки", "получил стипендию", "дата получ. стип." (можно в значенях свойств, если их будет много. Типа какая дата к какой оценки относится) 2. Можно в каждом инфоблоке завести свойство типа "привязка к элементу" 3. Можно в каждом разделе завести свойство типа "привязка к разделу" л
Думаю, во всех 3-х случаях, для вывода информации придеся писать свои компоненты -- стандартные не подойдут.