Разработка и Конфигурация · 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 и JavaScript через визуальный редактор
Самый простой способ вставить код на конкретную страницу — режим «Источник» в визуальном редакторе. Откройте страницу на редактирование, переключитесь на вкладку «Источник» (или кнопку <>), найдите нужное место в разметке и вставьте код. После сохранения код окажется в теле страницы.
Важная особенность: визуальный редактор может «чистить» некоторые теги при переключении между визуальным режимом и исходником. Особенно это касается <script>, iframe и нестандартных атрибутов. Если после сохранения код исчез или изменился — проверьте настройки фильтрации.
Чтобы редактор не вырезал скрипты, откройте настройки главного модуля (Настройки → Настройки продукта → Настройки модулей → Главный модуль) и проверьте параметры фильтрации HTML. Также в настройках визуального редактора можно отключить обработку кода. Альтернатива — вставлять скрипты не в тело страницы, а через включаемую область или шаблон.
Вставка PHP-кода на страницу
Если страница редактируется в режиме «Редактировать как PHP» (в файловой структуре через административный раздел), в неё можно вставлять PHP-код напрямую. В публичной части через визуальный редактор PHP вставить нельзя — он будет показан как текст. Для PHP-логики используйте файловый режим или механизмы, описанные ниже.
Включаемые области: код для повторяющихся блоков
Включаемая область (include-область) — файл, содержимое которого выводится в шаблоне или на странице и редактируется из публичной части. Это стандартный способ вставить баннер, текст, форму или скрипт, который должен меняться без привлечения разработчика.
Чтобы создать включаемую область, в режиме правки наведите курсор на область страницы, выделенную как включаемую, и нажмите «Добавить включаемую область». В коде шаблона область подключается функцией $APPLICATION->IncludeFile() или компонентом «main.include».
<?$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Сделайте резервную копию файла или всего шаблона
- 2Откройте header.php или footer.php через «Контент → Структура сайта → Файлы и папки» или по FTP/SSH
- 3Вставьте код в нужное место (счётчики — перед , метатеги — в <head>)
- 4Сохраните файл и сбросьте кеш: Настройки → Настройки продукта → Автокеширование, либо кнопкой сброса кеша
- 5Откройте сайт в режиме инкогнито и проверьте код через «Просмотр кода страницы»
Никогда не правьте шаблоны в каталоге /bitrix/templates/ для стандартных решений — обновления затирают изменения. Всегда копируйте шаблон в /local/templates/ и работайте с копией.
PHP-логика: init.php и обработчики событий
Файл /local/php_interface/init.php (в старых проектах — /bitrix/php_interface/init.php) подключается при каждом хите и предназначен для подключения обработчиков событий, собственных функций и констант. Это правильное место для кода, который должен изменять поведение системы: подписка на события инфоблоков, заказов, пользователей.
Обработчик регистрируется функцией AddEventHandler. Например, чтобы выполнять код при добавлении элемента инфоблока, в init.php добавляется подписка на событие OnAfterIBlockElementAdd с указанием функции-обработчика. Сам обработчик можно разместить тут же или в отдельном файле, подключаемом через require.
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 вставлен через визуальный редактор и выведен как текст. Для скриптов аналитики проверяйте, что код не заблокирован блокировщиком рекламы в браузере.
Как проверить результат
Фрагмент присутствует в нужном месте HTML
Кода нет или он выведен как текст — проверьте кеш и способ вставки
Нет ошибок JavaScript, скрипты загружены
Ошибки 404 на файлы или синтаксические ошибки JS
Страницы открываются, белого экрана нет
Белый экран или ошибка 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/, делайте резервные копии, сбрасывайте кеш и проверяйте результат в исходном коде страницы.