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

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

Как вставить код в 1С-Битрикс: полное руководство

Как вставить код в 1С-Битрикс: визуальный редактор, include-области, шаблоны, init.php и компоненты. Пошаговые инструкции, ошибки и проверка результата.

Вставка кода в «1С-Битрикс: Управление сайтом» — типовая задача при доработке сайта: подключить счётчик аналитики, вывести баннер, добавить PHP-логику или изменить шаблон компонента. При этом у CMS несколько уровней, куда можно поместить код, и выбор неправильного места — самая частая причина того, что код «не работает» или ломает страницу.

Ключевой принцип: HTML- и JavaScript-вставки обычно делаются через визуальный редактор или включаемые области, а PHP-код — только в файлах шаблона, init.php или собственных компонентах. PHP нельзя вставлять через визуальный редактор публичной части — он будет выведен как текст или обрезан.

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

Способы вставки кода: какой выбрать

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

Тип кодаКуда вставлятьКогда подходит
HTML/JS на одной страницеВизуальный редактор, режим «Источник»Разовая вставка: виджет, форма, видео
HTML/JS на группе страницВключаемая область (include)Повторяющиеся блоки: баннеры, подписи
Код на всех страницахШаблон сайта (header.php/footer.php)Счётчики, метрики, глобальные скрипты
PHP-логикаinit.php, шаблоны компонентов, свои компонентыОбработчики событий, изменение данных
Изменение вывода компонентаКопия шаблона компонентаДоработка каталога, новостей, форм
Маршрут решения

Как выбрать действие

Нужно вставить виджет или HTML на одну страницуИспользуйте визуальный редактор в режиме «Источник»
Блок должен повторяться на многих страницах и редактироваться контент-менеджеромСоздайте включаемую область
Код должен работать на всех страницах сайтаДобавьте его в header.php или footer.php шаблона сайта
Требуется PHP-логика или реакция на событияИспользуйте init.php или собственный компонент

Вставка HTML и JavaScript через визуальный редактор

Самый простой способ вставить код на конкретную страницу — режим «Источник» в визуальном редакторе. Откройте страницу на редактирование, переключитесь на вкладку «Источник» (или кнопку <>), найдите нужное место в разметке и вставьте код. После сохранения код окажется в теле страницы.

Важная особенность: визуальный редактор может «чистить» некоторые теги при переключении между визуальным режимом и исходником. Особенно это касается <script>, iframe и нестандартных атрибутов. Если после сохранения код исчез или изменился — проверьте настройки фильтрации.

Чтобы редактор не вырезал скрипты, откройте настройки главного модуля (Настройки → Настройки продукта → Настройки модулей → Главный модуль) и проверьте параметры фильтрации HTML. Также в настройках визуального редактора можно отключить обработку кода. Альтернатива — вставлять скрипты не в тело страницы, а через включаемую область или шаблон.

Вставка PHP-кода на страницу

Если страница редактируется в режиме «Редактировать как PHP» (в файловой структуре через административный раздел), в неё можно вставлять PHP-код напрямую. В публичной части через визуальный редактор PHP вставить нельзя — он будет показан как текст. Для PHP-логики используйте файловый режим или механизмы, описанные ниже.

Включаемые области: код для повторяющихся блоков

Включаемая область (include-область) — файл, содержимое которого выводится в шаблоне или на странице и редактируется из публичной части. Это стандартный способ вставить баннер, текст, форму или скрипт, который должен меняться без привлечения разработчика.

Чтобы создать включаемую область, в режиме правки наведите курсор на область страницы, выделенную как включаемую, и нажмите «Добавить включаемую область». В коде шаблона область подключается функцией $APPLICATION->IncludeFile() или компонентом «main.include».

php
<?$APPLICATION->IncludeFile(SITE_DIR."include/banner.php", Array(), Array("MODE"=>"html"));?>

Параметр MODE определяет режим редактирования: «html» — визуальный редактор, «text» — простой текст, «php» — редактирование как PHP (для областей с кодом). Для областей, где нужен исполняемый PHP, используйте режим php и компонент main.include с соответствующим шаблоном.

Вставка кода в шаблон сайта

Шаблон сайта находится в каталоге /local/templates/имя_шаблона/ (в старых проектах — /bitrix/templates/). Основные файлы: header.php (шапка и открывающие теги) и footer.php (подвал и закрывающие теги). Код, который должен работать на всех страницах — счётчики, метатеги, глобальные скрипты — вставляется именно сюда.

Скрипты и стили правильно подключать не прямым тегом, а через API Битрикса: $APPLICATION->SetAdditionalCSS() и методы класса CJSCore либо Bitrix\Main\Page\Asset::getInstance()->addJs(). Это обеспечивает корректное объединение и кеширование ресурсов. Однако внешние счётчики (например, код аналитики) обычно вставляют как есть, перед закрывающим тегом </body> в footer.php.

Порядок действий при правке шаблона
  1. 1
    Сделайте резервную копию файла или всего шаблона
  2. 2
    Откройте header.php или footer.php через «Контент → Структура сайта → Файлы и папки» или по FTP/SSH
  3. 3
    Вставьте код в нужное место (счётчики — перед , метатеги — в <head>)
  4. 4
    Сохраните файл и сбросьте кеш: Настройки → Настройки продукта → Автокеширование, либо кнопкой сброса кеша
  5. 5
    Откройте сайт в режиме инкогнито и проверьте код через «Просмотр кода страницы»

Никогда не правьте шаблоны в каталоге /bitrix/templates/ для стандартных решений — обновления затирают изменения. Всегда копируйте шаблон в /local/templates/ и работайте с копией.

PHP-логика: init.php и обработчики событий

Файл /local/php_interface/init.php (в старых проектах — /bitrix/php_interface/init.php) подключается при каждом хите и предназначен для подключения обработчиков событий, собственных функций и констант. Это правильное место для кода, который должен изменять поведение системы: подписка на события инфоблоков, заказов, пользователей.

Обработчик регистрируется функцией AddEventHandler. Например, чтобы выполнять код при добавлении элемента инфоблока, в init.php добавляется подписка на событие OnAfterIBlockElementAdd с указанием функции-обработчика. Сам обработчик можно разместить тут же или в отдельном файле, подключаемом через require.

php
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "MyOnAfterElementAdd");
function MyOnAfterElementAdd(&$arFields) {
    // ваша логика
}

Ошибка в init.php критична: синтаксическая ошибка «уронит» весь сайт, включая административный раздел. Перед сохранением проверяйте синтаксис командой php -l init.php на сервере или редактируйте файл через копию, чтобы быстро откатиться.

Кастомизация компонентов: шаблоны и result_modifier.php

Вывод любого компонента (каталог, новости, форма) изменяется через копию его шаблона. В визуальном редакторе параметров компонента есть кнопка «Копировать шаблон» — система создаст копию в каталоге /local/templates/шаблон_сайта/components/..., и правки будут безопасны при обновлениях.

Внутри шаблона компонента есть специальные файлы: template.php — сама вёрстка, result_modifier.php — код, который выполняется перед выводом и позволяет изменить массив результатов $arResult, component_epilog.php — код после вывода (выполняется даже при кешировании компонента). Для добавления данных в вывод используйте result_modifier.php, а не правьте сам компонент.

Частая задача — вывести дополнительное свойство или пересчитать цену в шаблоне. Делайте это в result_modifier.php, дополняя $arResult, а в template.php только выводите готовые данные. Так шаблон остаётся читаемым, а логика не смешивается с вёрсткой.
ПЗ
Практическое замечание

Проверка результата и частые ошибки

После вставки кода проверьте три вещи: код физически присутствует в HTML страницы (Ctrl+U в браузере), нет ошибок JavaScript в консоли разработчика (F12), страница открывается без ошибок PHP. Проверку делайте в режиме инкогнито или после сброса кеша — закешированная версия страницы может не показывать изменения.

Если код не работает, чаще всего причина в кеше Битрикса (сбросьте автокеш и кеш компонентов), в композитном режиме (динамические вставки могут обрезаться) или в том, что PHP вставлен через визуальный редактор и выведен как текст. Для скриптов аналитики проверяйте, что код не заблокирован блокировщиком рекламы в браузере.

Типичные ошибки
01
Вставка PHP через визуальный редактор — код выводится как текст и не выполняется
02
Правка стандартных шаблонов в /bitrix/templates/ — изменения стираются обновлением
03
Забытый сброс кеша — кажется, что код не работает, хотя он вставлен верно
04
Синтаксическая ошибка в init.php — падает весь сайт, включая админку
05
Дублирование счётчиков в шаблоне и включаемой области — данные аналитики задваиваются
06
Прямое подключение JS через тег script в обход Asset — конфликты при объединении и минификации
Контрольные точки

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

Код в исходнике страницы (Ctrl+U)
Норма

Фрагмент присутствует в нужном месте HTML

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

Кода нет или он выведен как текст — проверьте кеш и способ вставки

Консоль браузера (F12)
Норма

Нет ошибок JavaScript, скрипты загружены

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

Ошибки 404 на файлы или синтаксические ошибки JS

Работа сайта после правки PHP
Норма

Страницы открываются, белого экрана нет

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

Белый экран или ошибка 500 — проверяйте лог ошибок PHP и откатывайте правку

Часто задаваемые вопросы

Куда вставить код счётчика (Метрика, Analytics), чтобы он работал на всех страницах?

Оптимальное место — footer.php шаблона сайта, перед закрывающим тегом </body>. Если шаблонов несколько, код нужно добавить в каждый. Альтернатива — включаемая область в подвале, если она уже выведена в шаблоне. После вставки сбросьте кеш и проверьте наличие кода в исходнике страницы.

Почему вставленный через редактор скрипт исчезает после сохранения?

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

Можно ли вставить PHP-код прямо в текст страницы?

Через визуальный редактор публичной части — нет. PHP можно вставить, если редактировать страницу как файл («Редактировать как PHP» в структуре сайта) или через включаемую область в режиме php. Для регулярной логики правильнее использовать init.php, обработчики или шаблоны компонентов.

Что делать, если после вставки кода сайт перестал открываться?

Это почти всегда синтаксическая ошибка в PHP-файле. Откройте файл по FTP/SSH и отмените последние изменения или восстановите файл из резервной копии. Текст ошибки с номером строки смотрите в логе ошибок PHP на сервере. На будущее — проверяйте файлы командой php -l перед загрузкой.

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

Работайте только в каталоге /local/: шаблоны сайта, копии шаблонов компонентов, init.php в /local/php_interface/. Всё, что лежит в /bitrix/, может быть перезаписано обновлением. Собственные компоненты и модули также размещайте в /local/components/ и /local/modules/.

Код вставлен, но на странице не виден. Что проверить в первую очередь?

Сначала сбросьте кеш Битрикса и откройте страницу в инкогнито. Затем проверьте исходный код страницы: если кода нет — проблема в месте вставки или кеше; если есть, но не работает — смотрите консоль браузера на ошибки JS и проверьте, не блокирует ли код блокировщик рекламы.

Итог

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

Тип кода определяет место вставки: HTML/JS — редактор и включаемые области, глобальные скрипты — шаблон сайта, PHP — init.php и шаблоны компонентов. Работайте только в /local/, делайте резервные копии, сбрасывайте кеш и проверяйте результат в исходном коде страницы.