К статье
Практический материал

Разработка и Конфигурация · 10 мин

1С-Битрикс: какой язык программирования используется

Разбираем, на каком языке написан 1С-Битрикс: ядро на PHP, шаблоны, компоненты, API. Что учить разработчику и как начать доработку сайта на Bitrix.

1С-Битрикс (продукты «Управление сайтом» и «Корпоративный портал») написан на языке PHP. Это главный и короткий ответ на вопрос: вся серверная логика платформы — ядро, модули, компоненты, API — реализована на PHP, а данные хранятся в реляционной базе, чаще всего MySQL или MariaDB. Поэтому доработка сайта на Битриксе — это в первую очередь работа с PHP-кодом.

Помимо PHP, в работе с Битриксом неизбежно встречаются смежные технологии: HTML и CSS для вёрстки шаблонов, JavaScript для интерактивности на фронтенде, SQL для прямых запросов к базе (хотя чаще используется собственный ORM). Понимание этого стека помогает правильно оценить, какие навыки нужны разработчику и кого искать на проект.

Важно не путать два разных продукта одного вендора: «1С:Предприятие» использует собственный встроенный язык (так называемый язык 1С), а «1С-Битрикс» — это отдельная веб-платформа на PHP. Общего языка у них нет; интеграция между ними выполняется через обмены данными, а не через общий код.

Из чего состоит технологический стек Битрикса

Платформа построена по классической схеме веб-приложения: серверная часть на PHP обрабатывает запросы, обращается к базе данных и отдаёт готовый HTML. В качестве веб-сервера обычно используется Apache или Nginx с PHP-FPM. Поддерживаются актуальные версии PHP — конкретный список совместимых версий зависит от версии ядра, её стоит сверять с официальной документацией перед обновлением.

Слой данных работает через собственный ORM: современный API (D7) предоставляет классы сущностей, а устаревший API использует методы вида CIBlockElement::GetList. Прямые SQL-запросы тоже возможны через $DB->Query(), но это считается крайней мерой, потому что обходит кеширование и событийную модель.

Фронтенд-часть — это шаблоны компонентов и сайта: PHP-файлы с примесями HTML, в которых выводятся данные, подготовленные логикой компонента. JavaScript используется как в административном интерфейсе, так и на публичной части; у платформы есть собственная JS-библиотека (BX), хотя ничто не мешает подключать сторонние фреймворки.

Как устроен PHP-код: компоненты, шаблоны, модули

Основная единица логики на странице — компонент. Это набор PHP-файлов: class.php или component.php выполняет выборку и обработку данных, а файлы шаблона (template.php) отвечают за вывод. Компонент вызывается в коде страницы через $APPLICATION->IncludeComponent() с массивом параметров.

Модули — более крупные блоки функциональности (информационные блоки, интернет-магазин, форум и т.д.). Собственные доработки принято выносить в кастомные модули или в папку /local/, чтобы не трогать ядро. Папка /bitrix/ содержит код вендора и обновляется автоматически — любые правки внутри неё будут затёрты при очередном обновлении.

Точки расширения без изменения чужого кода — это обработчики событий. Например, можно подписаться на событие добавления элемента инфоблока и выполнить свою логику: пересчитать свойства, отправить уведомление, синхронизировать данные с внешней системой. Обработчики регистрируются в файле init.php или в установщике модуля.

Какой код писать для доработки: практические сценарии

Типовая задача — вывести список элементов инфоблока с фильтрацией. В современном API это выглядит как вызов \Bitrix\Iblock\Elements\ElementCatalogTable::getList() или универсального CIBlockElement::GetList из старого ядра. Оба варианта рабочие, но для нового кода предпочтителен D7: он предсказуемее типизирует поля и лучше документирован в актуальных материалах.

Вторая частая задача — кастомизировать шаблон компонента, не ломая обновления. Для этого шаблон копируется в папку сайта (/local/templates/название_шаблона/components/...), и правится уже копия. Система автоматически подхватывает переопределённый шаблон вместо стандартного.

php
<?php
// Выборка активных элементов инфоблока через старый API
$arSelect = ['ID', 'NAME', 'PREVIEW_TEXT'];
$arFilter = ['IBLOCK_ID' => 12, 'ACTIVE' => 'Y'];
$res = CIBlockElement::GetList(['SORT' => 'ASC'], $arFilter, false, ['nTopCount' => 10], $arSelect);
while ($item = $res->GetNext()) {
    echo $item['NAME'];
}

Для асинхронных операций — отправки писем, импорта каталога, пересчёта цен — используются агенты: PHP-функции, которые Битрикс вызывает по расписанию. Агенты регистрируются через CAgent::AddAgent(), и важно перевести их исполнение на cron, чтобы запуск не зависел от посещаемости сайта.

Чем отличаются требования к разработчику под разные задачи

Не каждая доработка требует полного стека. Верстальщику, который натягивает дизайн на шаблон, достаточно HTML, CSS, базового JavaScript и понимания, где лежат файлы шаблонов. Программисту для бизнес-логики нужен уверенный PHP и знание API Битрикса, а администратору для настройки сервера — навыки работы с Linux, Nginx/Apache и MySQL.

Сравнение вариантов

Доработка шаблонов и вёрстки

Подходит при задачах на внешний вид. Нужны HTML, CSS, JS и минимальный PHP. Ограничение: бизнес-логику так не изменить.

Разработка на API Битрикса

Для интеграций, импортов, нестандартной логики. Нужен PHP и знание D7/старого ядра. Требует понимания событийной модели и кеширования.

Настройка без кода

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

Отдельный случай — коробочная версия «1С-Битрикс24». Это тот же PHP-стек, но с акцентом на REST API: для интеграций и виджетов часто вообще не нужно лезть в ядро, достаточно вызывать REST-методы из внешнего приложения на любом языке. Облачный Битрикс24 вообще не даёт доступа к серверному коду — там доступны только REST и вебхуки.

Как проверить, что доработка сделана правильно

После внесения изменений проверьте три вещи: сайт открывается без ошибок PHP (включите вывод ошибок на копии, но не на боевом сайте), данные выводятся корректно при разных фильтрах и правах пользователей, а страницы не стали заметно медленнее. Для диагностики производительности в Битриксе есть встроенный монитор и режим отладки SQL-запросов.

Контрольные точки

Как проверить результат

Отсутствие правок ядра
Норма

Все изменения лежат в /local/ или в шаблонах сайта

Тревожный признак

Изменены файлы в /bitrix/modules/ или /bitrix/components/

Работа после обновления
Норма

После тестового обновления платформы доработки сохранились

Тревожный признак

После обновления функционал пропал или сломался

Скорость страниц
Норма

Время генерации страницы сопоставимо с прежним

Тревожный признак

Появились тяжёлые запросы в цикле, страница стала заметно медленнее

Полезная привычка — вести доработки в системе контроля версий и разворачивать их сначала на тестовой копии. Битрикс не накладывает ограничений на Git, а выкатка изменений через копию позволяет поймать ошибку до того, как её увидят посетители.

Типичные ошибки начинающих разработчиков на Битриксе

Типичные ошибки
01
Правка файлов ядра в /bitrix/ — изменения стираются при обновлении, сайт теряет поддержку.
02
Выборка данных в цикле: GetList внутри foreach приводит к сотням SQL-запросов и падению скорости.
03
Отключение кеширования компонентов ради «свежих данных» вместо корректного сброса кеша по событиям.
04
Хранение собственного кода в нестандартных местах без документации — следующий разработчик не сможет его найти.
05
Прямые SQL-запросы к таблицам в обход API: ломаются события, кеш и права доступа.

Ещё одна распространённая проблема — смешение старого и нового API без необходимости. Оба подхода поддерживаются, но в одном модуле лучше придерживаться единого стиля, иначе код становится трудно сопровождать. Перед началом работы полезно изучить уже существующие доработки проекта, чтобы продолжать в том же стиле.

С чего начать изучение разработки под Битрикс

Порядок действий
  1. 1
    Освойте базовый PHP: синтаксис, массивы, функции, работа с классами.
  2. 2
    Изучите HTML, CSS и основы JavaScript для работы с шаблонами.
  3. 3
    Установите локальную копию Битрикса (виртуальная машина или веб-окружение) и потренируйтесь на ней.
  4. 4
    Разберите устройство инфоблоков, компонентов и шаблонов на примерах из документации.
  5. 5
    Напишите первую доработку: обработчик события или простой компонент в /local/.
  6. 6
    Научитесь пользоваться отладкой, монитором производительности и системой контроля версий.

У вендора есть официальные учебные курсы и документация по API — это основной источник достоверной информации, поскольку сторонние материалы быстро устаревают вместе с версиями платформы. Практику лучше вести на локальной копии: эксперименты на боевом сайте без резервной копии — прямой путь к потере данных.

Итог

Что важно запомнить

1С-Битрикс написан на PHP, плюс HTML, CSS, JavaScript и SQL вокруг. Доработки делайте в /local/ и шаблонах, ядро не трогайте. Для интеграций с Битрикс24 часто достаточно REST API без доступа к коду.

Частые вопросы

1С-Битрикс и 1С:Предприятие — это один язык программирования?

Нет. 1С:Предприятие использует собственный встроенный язык, а 1С-Битрикс написан на PHP. Это разные платформы одного бренда; связь между ними строится через механизмы обмена данными, а не через общий код.

Можно ли писать для Битрикса на Python или Node.js?

Ядро и доработки внутри сайта — только PHP. Однако внешние сервисы, взаимодействующие с Битриксом через REST API или вебхуки, можно писать на любом языке: Python, Node.js, Go и т.д.

Нужно ли знать SQL для работы с Битриксом?

Глубокое знание не обязательно: ORM и API закрывают большинство задач. Но базовое понимание SQL помогает при отладке медленных страниц и анализе структуры базы данных.

Какая версия PHP нужна для Битрикса?

Требования зависят от версии платформы и периодически меняются: свежие версии ядра требуют более новых веток PHP. Точный список поддерживаемых версий проверяйте в официальной документации перед установкой или обновлением.

Можно ли дорабатывать облачный Битрикс24 на PHP?

Нет, доступа к серверному коду в облаке нет. Доступны REST API, вебхуки и встраиваемые приложения. PHP-разработка возможна только в коробочной версии, развёрнутой на собственном сервере.

Сколько времени нужно, чтобы начать дорабатывать Битрикс?

При знании PHP первые простые задачи (шаблоны, обработчики событий) реально выполнять через несколько недель практики на тестовой копии. Уверенная работа с API, кешированием и интеграциями требует нескольких месяцев реальных проектов.