Блог

Делюсь опытом разработки высоконагруженных проектов на 1С-Битрикс, рассказываю про архитектуру, интеграции и бизнес-логику.

Как удалить элемент инфоблока в Битрикс через CIBlockElement::Delete?
AI
143 5 мин.

Как удалить элемент инфоблока в Битрикс через CIBlockElement::Delete?

Пошаговый CIBlockElement::Delete: проверка GetException, OnBeforeIBlockElementDelete, отличие от ACTIVE=N, порядок удаления SKU и массовый cron без timeout.
Как создать элемент инфоблока в Битрикс через CIBlockElement::Add?
AI
215 6 мин.

Как создать элемент инфоблока в Битрикс через CIBlockElement::Add?

Пошаговый CIBlockElement::Add: IBLOCK_ID и NAME, PROPERTY_VALUES для списка и файла, OnBeforeIBlockElementAdd, LAST_ERROR и отличие от Update.
Как использовать OnBeforeIBlockElementUpdate в 1С-Битрикс без затирания свойств?
AI
190 5 мин.

Как использовать OnBeforeIBlockElementUpdate в 1С-Битрикс без затирания свойств?

Регистрация OnBeforeIBlockElementUpdate в init.php, isset PROPERTY_VALUES, отмена Update через ThrowException и сравнение OnBefore vs OnAfter для CMS Битрикс.
Как получить ID списочного свойства в Битрикс через CIBlockPropertyEnum?
AI
229 6 мин.

Как получить ID списочного свойства в Битрикс через CIBlockPropertyEnum?

Troubleshooting-гайд по CIBlockPropertyEnum::GetList, GetByID, XML_ID и D7 PropertyEnumerationTable: фильтр IBLOCK_ID+CODE, запись enum ID в PROPERTY_VALUES, чек-лист до деплоя.
Как использовать fetchObject и fetchCollection после getList в D7 ORM?
AI
110 6 мин.

Как использовать fetchObject и fetchCollection после getList в D7 ORM?

Гайд по objectify-слою D7 ORM: fetchObject vs fetch, fetchCollection, save(), createObject и wakeUpObject. Чек-лист без потери правок и без кеша EO_Collection.
Как кешировать выборки D7 ORM в 1С-Битрикс через cache в getList?
AI
139 6 мин.

Как кешировать выборки D7 ORM в 1С-Битрикс через cache в getList?

Встроенный ORM-кеш: ttl и cache_joins в getList, путь managed_cache/orm_*, cleanCache после SQL, cache_flags в .settings.php. Отличие от TaggedCache и админ-очистки.
Как настроить логирование в 1С-Битрикс: Debug, Logger, AddMessage2Log и журнал ошибок
AI
223 6 мин.

Как настроить логирование в 1С-Битрикс: Debug, Logger, AddMessage2Log и журнал ошибок

Карта логирования CMS: AddMessage2Log, Debug::writeToFile, Logger D7, error.log и маскирование токенов. Чек-лист staging и production для разработчика.
Как построить сложную выборку D7 ORM с ExpressionField в 1С-Битрикс?
AI
154 6 мин.

Как построить сложную выборку D7 ORM с ExpressionField в 1С-Битрикс?

Table::query(), registerRuntimeField, SUM/COUNT, setGroup и авто-HAVING в 1С-Битрикс CMS. Отчёт одним SQL, getQuery() для отладки, миграция с строки в select на PHP 8.
Как выбрать addMulti, addMerge и addInsertIgnore в D7 ORM Битрикс?
AI
76 6 мин.

Как выбрать addMulti, addMerge и addInsertIgnore в D7 ORM Битрикс?

Матрица addMulti vs addMergeMulti vs addInsertIgnoreMulti для CMS: пакеты 500-1000 строк, $ignoreEvents, unique index, транзакции и чек-лист staging.