Блог разработчика 1С-Битрикс

Папка /local/. Практическое руководство по структурированию, переносу и настройке проектов

1С-Битрикс — это мощная CMS, широко используемая для создания корпоративных сайтов, интернет-магазинов и других веб-ресурсов. С внедрением архитектуры D7 и добавлением папки `/local` разработчики получили удобное средство для управления пользовательскими доработками, изоляции их от системных файлов и повышения гибкости в процессе разработки. В этой статье мы подробно разберем, как правильно использовать папку `/local` для организации кода, переноса старого проекта и создания эффективной структуры файлов.

Папка /local/

Зачем нужна папка /local?

С введением папки /local в 1С-Битрикс с версии D7 (начиная с релиза 14.0.1) разработчики получили возможность изолировать пользовательский код от стандартных системных файлов. Это нововведение значительно упрощает обновления ядра системы, так как все изменения находятся в одном месте и не пересекаются с файлами ядра.

Основные преимущества использования папки /local:

  • Упрощение обновлений системы. Все изменения и кастомизации хранятся отдельно от системных файлов в /bitrix, что минимизирует риски потери данных при обновлениях.
  • Безопасность и изоляция. Пользовательский код не мешает работе самой системы, и обновления системы могут происходить без влияния на изменения в проекте.
  • Упорядочение кода. Благодаря разделению кода по папкам становится проще ориентироваться и управлять проектом.

Структура папки /local и описание её содержимого

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

1. /local/activities — Действия для бизнес-процессов (БП)

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

Пример:

/local/activities/SendEmail.php

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

2. /local/components — Компоненты

Здесь хранятся как пользовательские компоненты, так и переопределенные стандартные компоненты 1С-Битрикс. Компоненты — это блоки функционала, которые можно многократно использовать на сайте, такие как формы, списки, галереи и т. д.

Пример:

/local/components/my_component/detail.php

Если вам нужно изменить внешний вид стандартного компонента, вы можете просто скопировать его в /local/components/, внести необходимые изменения, и он будет работать, не затрагивая оригинальный код в /bitrix.

3. /local/gadgets — Гаджеты для рабочего стола

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

Пример:

/local/gadgets/dashboardWidget.php

4. /local/modules — Самописные модули

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

Пример:

/local/modules/my_module/include.php

В этом файле будет храниться логика работы вашего модуля, например, подключение внешнего API.

5. /local/php_interface — Файлы настройки системы

Это одна из важнейших папок в проекте. Здесь содержатся все скрипты, которые отвечают за настройку и кастомизацию работы Битрикс. В этой папке обычно размещаются:

  • init.php — файл инициализации, где подключаются все необходимые компоненты, классы и модули.
  • events.php — обработчики событий, которые добавляют собственную логику в стандартные процессы.
  • constants.php — файл с константами, которые могут использоваться в проекте.

Пример структуры:

/local/php_interface/
  init.php
  events.php
  constants.php
  classes/
    User.php

init.php — подключает все файлы, включая events.php, constants.php, а также регистрирует автозагрузку классов.

Пример автозагрузчика:

spl_autoload_register(function ($className) {
    $classPath = __DIR__ . '/classes/';
    $fileName = $classPath . str_replace('\\', '/', $className) . '.php';
    if (file_exists($fileName)) {
        require_once $fileName;
    }
});

events.php — обрабатывает события системы, например, создание новых пользователей, обновление данных и другие важные операции.

6. /local/templates — Шаблоны сайта

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

Пример:

/local/templates/my_template/header.php

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

7. /local/blocks — Блоки и элементы для верстки

Для удобства и согласованности стилей в проекте можно использовать блоки, как в подходе БЭМ. В папке /local/blocks можно организовать код по принципу переиспользуемых блоков. Это может быть полезно для создания модульных элементов интерфейса.

Пример:

/local/blocks/button/button.css
/local/blocks/form/form.js

Здесь хранятся все элементы, которые могут быть использованы в различных частях сайта.

8. /local/routes — Конфигурация маршрутов

Если в проекте используется роутинг (например, для REST API или кастомных маршрутов для страниц), то все настройки маршрутов и их обработчиков размещаются в этой папке.

Пример:

/local/routes/apiRoutes.php

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

9. /local/js — JavaScript и сторонние библиотеки

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

Пример:

/local/js/jquery.min.js
/local/js/myCustomScript.js

10. /local/images — Изображения и файлы для шаблонов

Все изображения для шаблонов, шрифты или прочие статические файлы, которые не имеют отношения к функционалу, можно хранить в папке /local/images. Это обеспечит чистоту структуры и удобство работы с ресурсами.

Пример:

/local/images/logo.png

Как переносить старый проект в /local

Если вам нужно перенести старый проект, в котором уже есть доработки в /bitrix, то вам предстоит следовать несколько шагов:

1. Использование Монитора качества

Сначала запустите Монитор качества в панели управления Битрикс. Это позволит вам понять, какие файлы были изменены в системе, и какие из них следует перенести в /local.

2. Создание и настройка папки /local

Создайте структуру в папке /local, как указано выше. Для начала вам нужно будет создать файлы и папки для работы: init.php, events.php, constants.php, а также скрипты для автозагрузки классов.

3. Перенос шаблонов и компонентов

Все изменённые шаблоны и компоненты нужно перенести в соответствующие папки в /local. Например, из /bitrix/templates/.default в /local/templates/.default или создать новый шаблон, который будет расширять существующий.

4. Проверка путей и ссылок

После того как вы перенесли все файлы, проверьте пути к файлам. Замените все прямые ссылки на /bitrix/ на /local/. Это особенно важно для шаблонов и компонентов, чтобы система корректно подхватывала файлы из новой папки.

5. Тестирование

После переноса всех файлов протестируйте проект. Убедитесь, что сайт работает корректно, и что все изменения из /local правильно подгружаются и функционируют.

Заключение

Папка /local в 1С-Битрикс — это мощный инструмент для организации пользовательского кода, управления проектом и повышения гибкости разработки. Разделение системных и пользовательских файлов, правильное структурирование папок и файлов внутри /local позволяет легче поддерживать проект, проводить обновления и интегрировать новые решения.

Правильное использование этой папки и её структура, как показано в этой статье, поможет вам создать более чистый и организованный проект, который будет легче масштабировать и поддерживать.

Теги: папка /local, структурирование проекта, перенос проекта, настройка проекта, веб-разработка


Валерий Макеев
10.09.2025 15:38
Код
<?php
use Bitrix\Main\EventManager;

$eventManager = EventManager::getInstance();

// Пример: Добавление обработчика после сохранения элемента инфоблока
$eventManager->addEventHandler(
    'iblock',
    'OnAfterIBlockElementUpdate',
    function ($fields) {
        if ($fields['IBLOCK_ID'] == 1) { // ID инфоблока
            // Логирование изменений элемента
            AddMessage2Log(
                "Элемент {$fields['ID']} был изменен: " . 
                print_r($fields, true)
            );
        }
    }
);


Этот код добавляет обработчик события, который записывает в лог изменения элементов указанного инфоблока. Можно поместить в /local/php_interface/init.php

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Техническая поддержка

выполняется с сайтами на основе любых CMS

от 5 000 рублей
Оптимизация производительности действующих интернет-проектов, наполнение и сопровождение, полная техническая поддержка и продвижение в поисковых сетях.

* стоимость зависит от объема и сложности выполняемых работ, используемой CMS.

Интернет-магазин на готовом решении

от 7 дней

от 40 000 рублей
запуск сайта в максимально короткие сроки

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Перенос сайтов на «1С-Битрикс»

сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость

от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.

* зависит от объема выполняемых работ.