Исправляем падение ядра Bitrix при добавлении параметра USER_FIELD_MANAGER

Главный модуль ядра 1с-Битрикс версии 22.100 подвержен ошибке — при добавлении get-параметра ?USER_FIELD_MANAGER=1 в любую ссылку сайт падает в exception вида

[Error] 
Call to a member function getEntityList() on string (0)
/var/www/public/bitrix/modules/main/lib/orm/entity.php:324
#0: Bitrix\Main\ORM\Entity->postInitialize()
	/var/www/public/bitrix/modules/main/lib/orm/entity.php:129
#1: Bitrix\Main\ORM\Entity::getInstanceDirect(string)
	/var/www/public/bitrix/modules/main/lib/orm/entity.php:107
...
----------
Читать дальше…

ORM в D7 1c-bitrix. Первый подход к снаряду

Реализация ORM в ядре D7 — очередная интересная, перспективная, но как обычно плохо документированная разработка от 1с-Битрикс :) Призвана она абстрагировать разработчика от механики работы с таблицами на уровне запросов к БД, введя понятие сущности и поля сущности. На зимней партнерской конференции Алексей Кирсанов провел мастер-класс по созданию модуля с применением ORM для выборки данных из своей таблицы. После чего я решил провести небольшое исследование на предмет возможности построения более сложных, чем в примере, запросов. Читать дальше…

Письма, файлы и картинки

В модуле «Подписка, рассылки» есть очень замечательная возможность — прикладывать к письму произвольные файлы и автоматически заменять ссылки на изображения, собственно, самими картинками. И этого очень не хватает в стандартной почтовой системе битрикса. Читать дальше…

Обновление свойств инфоблока

В процессе разработки довольно часто приходится программно обновлять значения свойств элементов инфоблока. Под катом небольшая шпаргалка по api-функциям для решения этой задачи и форматам передаваемых в них данных. Читать дальше…

Тестируем технологию CDN от 1с-Битрикс

Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использования этого модуля, произведя серию замеров времени загрузки одной из страниц конкретного сайта. Читать дальше…

Что должен знать битрикс-программист?

Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и есть возможность сформировать некий единый список необходимых знаний для успешного трудоустройства. Так что же должен уметь битрикс-программист с точки зрения работодателя? Читать дальше…

Битрикс путает шаблоны сайтов

Дано: многосайтовость на разных доменах (2й способ), разные шаблоны для сайтов.

Проблема: периодически показывается контент нужного сайта в шаблоне другого. Преимущественно при первом заходе.

Решение: выключить html-кэширование. Периодически владельцы сайтов сами его включают, думая что так будет лучше.

Исправляем ошибку MySQL «Row size too large» в 1с-Битрикс

Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs» (или «Got error 139 from storage engine»). Ниже рассмотрены причины и условия ее возникновения, а также различные методы устранения, с вмешательством в настройки сервера или без него. Читать дальше…

Автокэширование в 1с-Битрикс — сложно о простом

Автокэширование в 1с-Битрикс — хорошо развитая и довольно сложная система, позволяющая в разы уменьшить число обращений к базе данных и ускорить выполнение страниц. Понимать принципы и грамотно ее использовать должен любой успешный «битрикс-разработчик» для создания быстрых и качественных проектов. Сегодня поговорим о связи кэша и шаблона компонента. Читать дальше…

Как сделать AJAX формы 1с-Битрикс в всплывающих окнах

Эта статья посвящена одному из способов сделать в 1с-Битрикс форму в всплывающем окне. Достоинства метода:
— можно использовать любые формы 1с-Битрикс, которые выводятся компонентом. Например, добавление элемента инфоблока или веб-форма.
— всплывающее окно создается «на лету» при помощи javascript и изменяет свой размер в зависимости от количества контента внутри.
— весь процесс работы формы, вывода ошибок и результата происходит при помощи AJAX без перезагрузки окна.
Читать дальше…