Все статьи
307 материалов

Форму отправили — письмо не пришло. Заказ оформили — уведомление не дошло. Причём вчера всё работало. Ситуация распространённая, и проблема может быть на любом из четырёх уровней: шаблон, событие, очередь или сам почтовый сервер. Разберём диагностику по шагам — от простого к сложному, чтобы не начинать сразу с настроек DNS, когда дело в отключённом агенте. Как устроена отправка Понимание цепочки…

Выбор тарифа хостинга «на глаз» — частая причина либо переплаты за неиспользуемые ресурсы, либо, что хуже, нехватки мощности в самый неподходящий момент вроде рекламной акции. Разберём, как посчитать реальную потребность сайта на 1С-Битрикс в ресурсах сервера, а не гадать по названию тарифа. Что реально потребляет ресурсы Основные потребители вычислительных ресурсов Битрикса — PHP-FPM (обработка запросов) и MySQL (запросы к базе)….

Ошибка 503 Service Unavailable означает, что сервер временно не может обработать запрос, — в отличие от 500-й ошибки, это не всегда указывает на баг в коде. Разберём основные причины 503 на сайтах 1С-Битрикс и порядок диагностики от самых частых причин к менее очевидным. Перегрузка PHP-FPM или недостаток воркеров Самая частая причина 503 на нагруженном сайте — исчерпание пула доступных PHP-воркеров:…

Требования к размещению персональных данных российских граждан на серверах внутри страны напрямую влияют на выбор хостинга для сайта с формой регистрации, заказами или любым другим сбором персональных данных. Разберём, что реально означает «хостинг с российской пропиской» и какие требования актуальны для проекта на 1С-Битрикс в 2026 году. Требование 152-ФЗ о локализации персональных данных Закон требует, чтобы первичный сбор, запись, систематизация,…

Свойства элементов инфоблока — один из самых частых источников путаницы в API Битрикса: формат значения меняется в зависимости от типа свойства и множественности. Разберём CIBlockProperty, чтение и запись значений через PROPERTY_VALUES и типичные грабли с форматом данных. Получение списка свойств инфоблока <?php $result = CIBlockProperty::GetList( [‘SORT’ => ‘ASC’], [‘IBLOCK_ID’ => $iblockId] ); while ($property = $result->GetNext()) { echo $property[‘CODE’] ….

Глобальный объект $APPLICATION — экземпляр класса CMain, создающийся автоматически на каждой странице сайта. Через него проходит формирование заголовка, подключение стилей и скриптов, вывод меню и работа с включаемыми областями — почти всё, что связывает шаблон с содержимым страницы. Разберём методы, которыми пользуются каждый день, и объясним логику отложенных функций — механизм, который в старом ядре Битрикс работает не так, как…

template.php — единственный файл шаблона компонента, обязательный к существованию. Всё, что видит посетитель, формируется здесь: логика к этому моменту уже отработала, и файл занимается исключительно выводом готовых данных. Что доступно внутри файла К моменту подключения template.php компонент уже выполнил всю работу по получению данных, и они лежат в массиве $arResult. Кроме него доступны ещё несколько переменных: Переменная Содержит $arResult Данные,…

Штатная отправка писем через SMTP хостинга справляется с транзакционными уведомлениями, но плохо подходит для массовых маркетинговых рассылок — риск попасть в спам растёт, а инструментов аналитики открытий и переходов нет вовсе. Разберём, как подключить внешний сервис рассылок к 1С-Битрикс и разделить транзакционные и маркетинговые письма. Зачем разделять транзакционные и маркетинговые письма Транзакционные письма (подтверждение заказа, восстановление пароля) критичны для конкретного…

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

CIBlockSection::GetByID и построение цепочки родительских разделов — базовая задача при выводе хлебных крошек, вложенных каталогов и любой структуры, где разделы образуют иерархию. Разберём метод и типичные способы получить полную цепочку от текущего раздела до корня. Получение одного раздела по ID <?php $section = CIBlockSection::GetByID($sectionId)->GetNext(); if ($section) { echo $section[‘NAME’]; echo $section[‘IBLOCK_SECTION_ID’]; // ID родительского раздела, если есть } Как и…

Docker решает классическую проблему «у меня работает, а на сервере нет» — окружение разработки становится точной копией того, что реально используется на проде, а не приблизительным аналогом. Разберём, как настроить Docker-окружение для разработки на 1С-Битрикс. Базовый набор контейнеров # docker-compose.yml services: web: image: php:8.2-fpm volumes: — ./:/var/www/html depends_on: — db nginx: image: nginx:latest ports: — «8080:80» volumes: — ./:/var/www/html -…

Письма в 1С-Битрикс не отправляются в момент вызова CEvent::Send или Event::send — они становятся в очередь, которую разбирает отдельный механизм. Разберём, как устроена эта очередь, что делать, если письма копятся и не уходят, и как настроить отправку под реальную нагрузку проекта. Как письмо попадает в очередь Вызов почтового события создаёт запись в таблице очереди писем (b_event и связанные таблицы) со…