Версии пакетов composer в ядре Bitrix

Подключение своего composer.json довольно хорошо описано в официальной документации. Но, следует помнить о том, что в ядро фреймворка добавлены некоторые стандартные библиотеки composer, широко используемые в других пакетах. Добавлены они не через composer, а как копия репозитория, следовательно, за зависимостями нужно следить самостоятельно.

Читать дальше…

Вебвизор Яндекс.Метрики, X-Frame-Options и защита фреймов

Для работы Вебвизора от Яндекс.Метрики необходима возможность отображения сайта во фрейме на сторонних сайтах. Модуль проактивной защиты Битрикса в целях безопасности добавляет заголовок X-Frame-Options: SAMEORIGIN, явно запрещающий это делать. Посмотрим, что можно сделать, если аналитика нужна, а жертвовать защитой ради этого не хочется.

Читать дальше…

Исправляем ошибку обновления «Statement violates GTID consistency»

При обновлении старых версий битрикса можно столкнуться с ошибкой

Некоторые обновления не были установлены

Ошибка в updater’e 18.5.500 модуля main: [1786] Statement violates GTID consistency: CREATE TABLE … SELECT.. Установка обновлений модуля main прервана. [CL04] Ошибка обновления модулей.

Проблема возникает, если вы используете репликацию MySQL на базе GTID. Конструкция СREATE TABLE … SELECT запрещена, т.к. существует неоднозначность при записи этой транзакции в binlog в зависимости от настроек мастера и слейва.

Читать дальше…

Копирование инфоблоков в Битриксе

В стандартной админке Битрикса нет возможности создать новый инфоблок на основе уже существующего. В статье представлена немного переработанная версия скрипта из официальной документации вендора, в более структурированном виде и комментариями

Читать дальше…

Расчет стоимости корзины с учетом купона на d7

При классическом использовании функционала работы с купонами в Битриксе, размер скидки и обновление цен в корзине происходит в момент сохранения заказа. До этого момента объект Basket содержит «исходную» цену товара, а DiscountCouponsManager знает о примененных купонах.

Разбираемся, как показывать цену товаров в корзине до момента оформления заказа с учетом примененных скидок.

Читать дальше…

Чеклист: готовим Битрикс к Kubernetes

Все новые проекты, включая разработанные на 1c-bitrix, мы в компании разворачиваем в Kubernetes. Изначально это кажется довольно сложным процессом, но, при должном подходе все проблемы в итоге решаемы и можно с уверенностью сказать — проекты на битриксе корректно разворачиваются и работают в инфраструктуре k8s.

В статье я расскажу о проблемах, с которыми пришлось столкнуться, возможными решениями и в целом о процессе подготовки к переезду.

Читать дальше…

Исправляем падение ядра 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-функциям для решения этой задачи и форматам передаваемых в них данных. Читать дальше…