О метке «Разработка»
Материалы по теме «Разработка»: статьи и инструкции по 1С-Битрикс в базе знаний Bitrix-Help.
98 материалов

Изображения — обычно самая тяжёлая часть страницы по объёму передаваемых данных, и формат WebP при сопоставимом визуальном качестве даёт заметно меньший размер файла, чем JPEG или PNG. Разберём, как внедрить WebP на сайте 1С-Битрикс без ручной перезаливки всей медиатеки. Почему WebP весит меньше WebP использует более эффективные алгоритмы сжатия, чем классические JPEG и PNG, — на реальных фотографиях экономия обычно…

Штатных типов свойств инфоблока (строка, число, список, файл) достаточно не всегда — иногда нужен собственный виджет редактирования и своя логика хранения значения. Разберём, как зарегистрировать пользовательский тип свойства через обработчик события 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]+)/#’,…

На проекте с растущим каталогом и историей заказов производительность сайта рано или поздно упирается не в PHP, а в базу данных. Разберём, как находить и устранять медленные запросы MySQL на сайтах 1С-Битрикс, не переписывая всю логику приложения с нуля. Включение лога медленных запросов # my.cnf slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 1 Лог медленных запросов фиксирует все запросы,…

Защита изображений товаров от копирования конкурентами или продвижение бренда через логотип на каждой фотографии — типичная причина добавлять водяной знак при загрузке. Разберём, как реализовать автоматическое нанесение водяного знака на изображения в 1С-Битрикс. Обработчик события при сохранении файла <?php use Bitrix\Main\EventManager; EventManager::getInstance()->addEventHandler( ‘main’, ‘OnAfterFileSave’, function ($fileId) { $file = CFile::GetByID($fileId)->Fetch(); if (in_array($file[‘CONTENT_TYPE’], [‘image/jpeg’, ‘image/png’], true)) { addWatermark($file); } } );…

CUser::Update изменяет данные существующего пользователя из кода — и в этом же методе кроется распространённая проблема: он способен молча перезаписать поля, которые вы не собирались трогать, если структура передаваемого массива задумана неверно. Базовый вызов <?php $user = new CUser; $result = $user->Update($userId, [ ‘NAME’ => ‘Иван’, ‘LAST_NAME’ => ‘Петров’, ‘UF_PHONE’ => ‘+79001234567’, ]); if (!$result) { echo ‘Ошибка: ‘ ….

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

CFile::SaveFile ожидает массив в определённом формате — но не всегда исходные данные приходят готовым файлом с диска. Разберём CFile::MakeFileArray, который упрощает подготовку такого массива из пути или URL, избавляя от ручного формирования структуры вручную. Базовое использование с локальным путём <?php $fileArray = CFile::MakeFileArray(‘/path/to/local/image.jpg’); $fileId = CFile::SaveFile($fileArray, ‘catalog’); MakeFileArray берёт на себя формирование массива с нужными ключами (name, type, tmp_name, size)…

Отладка на боевом сервере, где нельзя просто остановить выполнение в точке останова, требует своих инструментов. Разберём AddMessage2Log — штатный способ логирования Битрикса — и настройку Xdebug для полноценной пошаговой отладки на локальном окружении. Базовое использование AddMessage2Log <?php AddMessage2Log(‘Начало обработки заказа #’ . $orderId, ‘my.module’); AddMessage2Log([‘ORDER_ID’ => $orderId, ‘SUM’ => $sum], ‘my.module’); Второй параметр — модуль или произвольная метка, по которой…
Материалы по теме «Разработка»: статьи и инструкции по 1С-Битрикс в базе знаний Bitrix-Help.