Создание сайтов на 1С Битрикс стало еще просто, используйте готовые шаблоны! Подключайте современные модули, делая ваш сайт еще эффективнее!
Например, парсер сайтов

Легкие highload блоки

Бесплатно
Данное решение упрощает и значительно ускоряет работу с данными в highload блоках. Добавление, обновление, удаление и извлечение данных делается теперь в одну строку. Создается класс с удобными методами.
Установка модуля стандартная. В меню появляется пункт Легкие Highload блоки. Настроек нет, кроме пункта "Автоматически создавать константы". По умолчанию отмечено. Этот пункт позволяет вместо id хайлоад блока писать его название в виде константы, что весьма упрощает и делает наглядной работу с блоками.



Модуль создает класс HData со следующими статическими методами:



- HData::add($hlblock_id, $fields) - возвращает id созданного элемента, либо массив ['error' => текст ошибки]



- HData::update($hlblock_id, $el_id, $fields) - возвращает true в случае успеха, либо массив ['error' => текст ошибки]



- HData::delete($hlblock_id, $el_id) - возвращает true при успешном удалении, либо массив ['error' => текст ошибки]



- HData::delete_datas($hlblock_id, $ar_el_id) - возвращает true при успешном удалении элементов, либо массив ['error' => текст ошибки]



- HData::getbyid($hlblock_id, $id, $error_message = '', $select=["*"], $expand_hl_multi = false, $expand_enums = false, $expand_files = false, $ar_uplinked = []) - возвращает ассоциативный массив выбранной строки $id из хайлоад блока $hlblock_id, либо массив ['error' => текст ошибки]



- HData::getlist($hlblock_id, $filter=[], $order=[], $limit=false, $offset=0, $select=["*"], $indexBy='ID', $indexMode='single', $indexBy2='ID', $expand_hl_multi = false, $expand_enums = false, $expand_files = false, $ar_uplinked = [], $error_message = false) - возвращает запрошенную выборку, либо массив ['error' => текст ошибки]

$filter - фильтрация выборки по полям хайлоадблока

$order - массив типа ['UF_NAME'=>'ASC'],

$limit - ограничение количества выборки. При $limit=1 возвращает ассоциативный массив выбранной строки $id из хайлоад блока $hlblock_id, при $limit != 1 возвращает массив выбранных строк

$offset - отступ выборки. Удобно для постраничной навигации  и т.п.

$select - массив выбираемых полей. Если выбраны все поля (["*"]), то в результат будут подтянуты данные единичных полей связанных хайлоадблоков (без допзапросов к БД) и помещены в подмассив "linked" каждой строки результата,

$indexBy - поле, по которому индексируем выборку,

$indexMode - если в параметре выше выбрано не ID то каждому индексу может соответствовать несколько записей. Данный параметр регулирует что с ними делать. Если выбрано "single", то каждому индексу запишется единственное значение - последнее. Если отличное от "single", то будут возвращены все строки в подмассиве, при этом индексация второго уровня регулируется следующим параметром $indexBy2,

$indexBy2 - индексация второго уровня. Подробнее в описании предыдущего параметра,

$expand_hl_multi - при установке в true будут подтянуты значения можественных полей связанных хайлоад блоков (с допзапросами к БД) и помещены в подмассив "linked" каждой строки результата,

$expand_enums - при установке в true будут подтянуты значения списочных полей данного хайлоадблока и помещены в подмассив "linked" каждой строки результата. (Допзапросы к БД),

$expand_files - при установке в true будут подтянуты FileArray файловых полей данного хайлоадблока и помещены в подмассив "files" каждой строки результата. (Допзапросы к БД),

$ar_uplinked - задается массив названий хайлоад блоков, среди которых нужно взять значения ссылающиеся на данную строку и помещены в подмассив "uplinked" каждой строки результата. (Допзапросы к БД). Здесь важно понимать, что ссылающихся записей может очень много. По умолчанию [] - пустой массив, т.е. поиск ссылающихся значений выполнен не будет. Для выбора всех хайлоад блоков задаем ['*']. Названия  хайлоад блоков можно задавать только при включенном параметре создания констант из названий,

$error_message - строка, которая будет возвращена при отсутствии записей.

Техподдержка по почте osintaras@ya.ru

x