О разделе «Разработка Битрикс»
Разработка Битрикс в 1С-Битрикс: статьи, инструкции и примеры кода из базы знаний Bitrix-Help.
PHP, D7, ORM, компоненты, JS
75 материалов

Не всякая фоновая задача — это агент, который ждёт своего интервала. Иногда нужно выполнить код сразу после того, как ответ уже ушёл пользователю, — чтобы не заставлять посетителя ждать отправку письма, лог или другую тяжёлую операцию, не влияющую на то, что он видит на странице. Разберём, как это сделать в Битриксе корректно. Проблема: тяжёлая операция в основном потоке ответа <?php…

Любой текст, который увидит пользователь или администратор, стоит выносить в языковые файлы через Loc::getMessage, а не зашивать строкой прямо в код, — даже если проект никогда не станет многоязычным. Разберём механизм локализации D7 и почему это правило стоит соблюдать с самого начала разработки. Базовое использование <?php use Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); echo Loc::getMessage(‘MY_MODULE_TASK_SAVED’); Loc::loadMessages(__FILE__) подключает языковой файл, расположенный по соглашению рядом с…

Режим отладки в 1С-Битрикс — это не одна галочка, а набор независимых настроек: вывод ошибок PHP, журнал SQL-запросов, отладка событий, таймер производительности. Разберём, что реально показывает каждая из них и почему включать всё сразу на боевом сайте не стоит. Вывод ошибок PHP Базовая настройка находится в /bitrix/.settings.php, в секции exception_handling. Параметр debug со значением true включает подробный вывод ошибок прямо…

AJAX на сайте под 1С-Битрикс можно сделать пятью разными способами, и они сильно отличаются по надёжности. Часть решений тянется из старого ядра, часть появилась в D7, а самый распространённый вариант — отдельный PHP-файл в обход системы — работает, но обычно оказывается худшим выбором. Разберём все подходы, покажем современный вариант с контроллерами D7 и объясним, почему подключать prolog_before.php в самописный обработчик…

Прямой SQL через глобальный объект $DB остаётся в проектах на Битриксе там, где ORM или старый объектный API оказываются избыточными или недостаточно быстрыми. Разберём, как безопасно работать с $DB->Query, и почему прямой SQL — это осознанный компромисс, а не путь по умолчанию. Базовый запрос <?php global $DB; $result = $DB->Query(‘SELECT ID, NAME FROM b_iblock_element WHERE IBLOCK_ID = 14 AND ACTIVE…

Штатных типов свойств инфоблока (строка, число, список, файл) достаточно не всегда — иногда нужен собственный виджет редактирования и своя логика хранения значения. Разберём, как зарегистрировать пользовательский тип свойства через обработчик события OnIBlockPropertyBuildList. Регистрация обработчика <?php use Bitrix\Main\EventManager; EventManager::getInstance()->addEventHandler( ‘iblock’, ‘OnIBlockPropertyBuildList’, [‘\Vendor\Module\ColorPickerProperty’, ‘getUserTypeDescription’] ); Класс пользовательского типа свойства <?php namespace Vendor\Module; class ColorPickerProperty { public static function getUserTypeDescription(): array { return…

Пользовательские поля — способ добавить свои данные к штатным сущностям 1С-Битрикс, не трогая структуру базы. Дополнительное поле в профиле пользователя, реквизиты у заказа, поле у раздела инфоблока — всё это UF-поля. Они узнаются по префиксу UF_ в названии и работают одинаково для всех сущностей, которые их поддерживают. Разберём, как создать поле, как получить и записать значение из кода и в…

Прежде чем обновлять ядро, писать в техподдержку или искать причину странного поведения сайта, полезно точно знать текущую версию — и главного модуля, и всего продукта в целом. Разберём, где эти цифры смотреть, чем отличается версия модуля от версии редакции, и общий порядок безопасного обновления. Где посмотреть версию Способ Что покажет Список модулей в админке Версию каждого модуля отдельно Раздел «Обновление…

urlrewrite.php связывает произвольные ЧПУ-адреса с конкретными физическими файлами и компонентами, не завязанными на реальную структуру каталогов сайта. Разберём формат файла, работу с параметрами в адресе и типичные ошибки при добавлении собственных правил. Расположение и базовая структура Файл находится в /bitrix/php_interface/urlrewrite.php (или /local/php_interface/, если используется этот вариант структуры проекта) и возвращает массив правил: <?php $arUrlRewrite = [ [ ‘CONDITION’ => ‘#^/promo/([0-9]+)/#’,…

Highload-блок — это отдельная таблица в базе данных, у которой есть настраиваемые поля и полноценный ORM-интерфейс. Внешне похоже на инфоблок, но устроено принципиально иначе: все данные лежат в одной таблице, а не размазаны по служебным таблицам свойств. Отсюда и назначение: highload-блоки создавались для больших объёмов однотипных записей, где инфоблоки начинают тормозить. Разберём, когда они нужны, как создать блок и работать…
Разработка Битрикс в 1С-Битрикс: статьи, инструкции и примеры кода из базы знаний Bitrix-Help.