Модули PHP, настройка параметров PHP в Bitrix
В панели управления Bitrix 7 многие библиотеки уже установлены, но отключены.
Для того чтобы просмотреть список установленных библиотек зайдите в каталог /etc/php.d:
ls /etc/php.d

В этой папке находятся файлы двух типов:
modul_name.ini — пустой файл,
modul_name.ini.disabled – содержит директиву для подключения модуля.
Для подключения модуля выполните:
mv modul_name.ini.disabled modul_name.ini
Например, для подключения модуля 20-json выполните:
mv 20-json.ini.disabled 20-json.ini
В результате файл 20-json.ini будет перезаписан содержимым файла 20-json.ini.disabled. Файл конфигурации с расширением .ini будет содержать нужную директиву.
systemctl restart httpd
Если Вы не нашли нужный модуль в каталоге /etc/php.d – воспользуйтесь инструкцией по установке модулей PHP для CentOS.
Если у Вас остались вопросы — создайте тикет в техподдержку.
Перевод сайта на 1C-Битрикс на PHP 8.x: пошаговая инструкция
Вначале года компания 1С-Битрикс выпустила обновления для всех модулей и штатных компонентов, чтобы они могли работать с PHP 8. Пару месяцев назад они начали активно подталкивать разработчиков сторонних решений к обновлению кода своих продуктов. И сейчас это уже практически обязательная мера, вплоть для устранения решения, если оно не поддерживает версию PHP 8. А с августа 2023 года получать обновления платформы 1С-Битрикс не на PHP 8 уже невозможно.
Многие владельцы сайтов на CMS Bitrix уже столкнулись с появлением красной строки в административной панели, призывающей к обновлению.

Седьмая версия PHP объявлена устаревшей и не поддерживается. Что это значит?
- Для неё не выпускают исправления функциональных ошибок.
- Для неё не выпускают решения для исправления ошибок безопасности.
- А не обновленные модули платформы подвержены уязвимостям, о которых мы писали в нашей статье ранее «Атака на сайты на 1С-Битрикс»
Получается, что переходить на PHP 8 – обязательно. Но если просто в панели управления хостингом изменить настройки и выбрать актуальную 8-ую версию, то сайт скорее всего сломается. В новой версии PHP изменились требования к написанию кода. То, что было допустимо в версии 7.4, теперь вызывает ошибки и приводит к сбоям работы сайта. Это означает, что весь код на вашем сайте должен соответствовать новым стандартам. Особенно это касается сторонних компонентов, шаблонов и модулей, установленных из Маркетплейса Bitrix. Вот здесь заключается настоящая проблема.
Мы предлагаем два подхода к обновлению – стандартный, рекомендуемый и нестандартный, к которому в некоторых случаях приходится прибегать.
Инструкция для перехода на PHP 8 – стандартный подход
При переходе сайтов, использующих 1C-Битрикс, на PHP 8.x, необходимо учесть ряд особенностей. В данной статье будет представлена пошаговая инструкция, которая поможет вам успешно выполнить этот процесс.
Шаг 1: Подготовка
Перед началом перехода на PHP 8.x, убедитесь, что ваша версия 1C-Битрикс обновлена до последней доступной версии. Для этого вам нужна активная поддержка на вашей лицензии. Если она закончилась, продлите ее, купив ее за 25% от стоимости лицензии. Редакцию вашей лицензии можно проверить в разделе /bitrix/admin/update_system.php?lang=ru в секции «Ответ сервера обновлений».

Шаг 2: Совместимость модулей и компонентов
Перед обновлением PHP до версии 8.x, убедитесь, что все используемые вами модули и компоненты 1C-Битрикс совместимы с этой версией PHP, как платные, так и бесплатные. Для этого вы можете воспользоваться специальным инструментом, предоставляемым 1C-Битрикс – «Проверка системы». Этот инструмент поможет вам определить, какие модули и компоненты нуждаются в обновлении или замене.
Если лицензия на какое-то решение истекла, ее также нужно обновить. Стоимость продления обычно составляет 50% от стоимости решения. Подробности можно найти на странице Маркетплейса, кликнув по названию решения.
Шаг 3: Резервное копирование
Перед обновлением PHP рекомендуется сделать полное резервное копирование вашего сайта, чтобы в случае каких-либо проблем можно было бы вернуться к предыдущей версии.
Шаг 4: Обновление PHP до версии 8.x
После выполнения всех подготовительных мероприятий можно приступать к обновлению PHP. Переходите к настройке сервера, выбирая нужную версию PHP.
Если ваш сайт небольшой, относительно новый и использует стандартные компоненты 1С-Битрикс без больших изменений, то он должен запуститься без особых проблем. Однако в большинстве случаев переход требует более глубокой работы. Поэтому рассмотрим альтернативный, нестандартный метод.
Шаг 5: Исправление ошибок в работе сайта
После перевода сайта на работу на PHP 8 вам потребуется проверить работу всех разделов сайта и в случае ошибок — оперативно их устранить.
Часто встречающиеся ошибки:
- [TypeError] count(): Argument #1 ($value) must be of type Countable|array, null given (0)
- Non-static method cannot be called statically
- [TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method
- PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax
- [TypeError] Cannot access offset of type string on string (0)
- и так далее…
Какие исправлять стандартные ошибки написано ниже.
Инструкция для перехода на PHP 8 – нестандартный подход
Этот метод комбинирует шаги первого способа с некоторыми дополнительными действиями. Его следует использовать, если:
- У вас есть уникальный шаблон;
- Ваш сайт использует кастомные компоненты;
- Вы работаете с решениями, которые больше не поддерживаются разработчиками, но необходимы для вашего сайта;
- Вы вносили изменения в ядро Bitrix;
- У вас нет возможности или желания обновлять лицензии на сторонние решения.
Обратите внимание, что лицензия на 1С-Битрикс должна быть активной в любом случае. Внесение изменений в ядро – это рискованный шаг.
Для начала вам надо выполнить шаги 1 и 3 из стандартного метода.
- Создайте полную резервную копию вашего сайта.
- Обновите ядро, как в идеальном сценарии. Если вы вносили изменения в ядро или штатные компоненты, перенесите их в папку local.
- Обновите все установленные сторонние решения. Если вы вносили изменения в эти решения, также переносите изменения в local.
- Включите вывод ошибок в настройках, в файле /bitrix/.settings.php.
- Настройте хостинг и активируйте PHP 8.
Как исправлять типовые ошибки перехода с PHP 7.x на PHP 8.x
1. Не статичный метод вызывается статично
[TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method CKladr::SetLocation() cannot be called statically (0)
Решение:
Находим файл, в котором прописан метод CKladr::SetLocation и указываем у него static
Пример:
public static function SetLocation()
2. Нет проверки типа данных при использовании функции для определенно типа данных
php 8 стал более строгий, теперь переменные нужно проверять перед использованием методом, относящихся к определенному типу данных
1. Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, bool given in /home/bitrix/ext_www/cin.ru/bitrix/modules/security/classes/general/antivirus.php:559
Решение:
Делаем проверку типа данных.
Пример 1. Проверка массива:
[TypeError] implode(): Argument #2 ($array) must be of type ?array, string given (0) [TypeError] array_key_exists(): Argument #2 ($array) must be of type array, string given (0) [TypeError] count(): Argument #1 ($value) must be of type Countable|array, null given (0) [TypeError] array_filter(): Argument #1 ($array) must be of type array, bool given (0) [TypeError] array_multisort(): Argument #1 ($array) must be an array or a sort flag (0) [TypeError] array_unique(): Argument #1 ($array) must be of type array, null given (0) [TypeError] in_array(): Argument #2 ($haystack) must be of type array, bool given (0) Решение: if(is_array($ar) && count($ar)>5)
Пример 3. Проверка массива:
[TypeError] array_key_exists(): Argument #2 ($array) must be of type array, string given (0) Решение: if(!array_key_exists($arFirstLvl, $arItem['IBLOCK_SECTION_ID']))< меняем на if(is_array($arItem['IBLOCK_SECTION_ID']) && !array_key_exists($arFirstLvl, $arItem['IBLOCK_SECTION_ID']))
Пример 4. Проверка массива:
[TypeError] array_filter(): Argument #1 ($array) must be of type array, bool given (0) Решение: $arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE'] = array_filter($arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE']); меняем на if(is_array($arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE']))
Пример 5. Проверка числа:
[TypeError] gmdate(): Argument #2 ($timestamp) must be of type ?int, string given (0) Решение: header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT'); to if(intval($lastModified)>0)
3. Не статичный метод не может быть определен как статичный
[Error] Non-static method Countrymask\Unitools::isAdminPage() cannot be called statically (0)
Возможно метод по ошибке установлен как static
заменяем public static function Location() < . >на public function Location()
4. Не отображаются наименования сторонних модулей в меню настроек модулей
В стороннем модуле может не быть конструктора и лэнги задаются в методе одноименным с классом. В php 7.4 это работало, но в php 8.1 нужно использовать __construct():
function recaptchafree() < $this->MODULE_NAME = GetMessage("CAPTCHA_INSTALL_NAME"); $this->MODULE_DESCRIPTION = GetMessage("CAPTCHA_INSTALL_DESCRIPTION"); . > заменяем на function __construct() < $this->MODULE_NAME = GetMessage("CAPTCHA_INSTALL_NAME"); $this->MODULE_DESCRIPTION = GetMessage("CAPTCHA_INSTALL_DESCRIPTION"); . >
5. Ключ в массиве, заданный без кавычек, будет обрабатываться как константа.
Если константа не определена, то появляется соответствующая ошибка:
Undefined constant "HTTP_USER_AGENT" (0)
Самая частая ошибка, обязательно у ключа в ассоциативном массиве должны быть кавычки:
$_SERVER[HTTP_USER_AGENT] заменяем на $_SERVER['HTTP_USER_AGENT']
6. В некоторых функциях обязательно должен быть задан аргумент.
[ArgumentCountError] mktime() expects at least 1 argument, 0 given (0)
Пример:
заменяем mktime() на mktime(0)
7. Синтаксис доступа к смещению массива и строки с фигурными скобками больше не поддерживается.
[ErrorException] E_COMPILE_ERROR Array and string offset access syntax with curly braces is no longer supported (0)
Пример:
$type0 = $type; меняем на if(!is_array($type[0]))
8. На php 8.0 работает, ошибки php показывает, но на php 8.1 выдает 502 Bad Gateway
В модуле Проактивная защита ставим исключение: Маски исключения: /bitrix/*
Другие ошибки
Ошибка:Undefined constant BX_RESIZE_PROPORTIONAL_ALT (0) Код: $arImg = CFile::ResizeImageGet($arSubItemImg, array('width' => 60, 'height' => 60), BX_RESIZE_PROPORTIONAL_ALT); Решение: $arImg = CFile::ResizeImageGet($arSubItemImg, array('width' => 60, 'height' => 60), BX_RESIZE_IMAGE_PROPORTIONAL_ALT);
Ошибка:implode(): Argument #2 ($array) must be of type ?array, string given (0) Код: $arImg = $arOfferProps = implode(';', $arParams['OFFERS_CART_PROPERTIES']); Решение: $offersСartProperties = !empty($arParams['OFFERS_CART_PROPERTIES']) && is_array($arParams['OFFERS_CART_PROPERTIES']) ? $arParams['OFFERS_CART_PROPERTIES'] : []; $arOfferProps = implode(';', $offersСartProperties);
Ошибка:in_array(): Argument #2 ($haystack) must be of type array, bool given (0) Код: if(in_array($arCurrentOffer['TREE'][$strName], $arShowValues)) Решение: if(is_array($arShowValues) && in_array($arCurrentOffer['TREE'][$strName], $arShowValues))
Проверка работоспособности сайта
После обновления PHP до версии 8.x рекомендуется протестировать работу вашего сайта. Обратите внимание на работу всех компонентов, функциональность сайта и взаимодействие с базой данных.
Если при проверке работоспособности сайта обнаружены какие-либо проблемы, связанные с переходом на PHP 8.x, необходимо выполнить дополнительные действия для их устранения. Обычно это включает в себя обновление модулей и компонентов, переписывание кода, исправление ошибок и так далее.
Если при проверке системы, вы видите только белый экран, откройте исходный код сочетанием клавиш Ctrl + U и посмотрите каждую страницу сайта.
Обязательно проведите тщательную проверку интерактивности веб-ресурса. Выполните все функциональные тесты, включая отправку форм, проверку работы калькуляторов и использование поиска на сайте.
Также не забудьте проверить наличие ошибок в консоли (F12) браузера.
Для более глубокой проверки сайта, воспользуйтесь стандартным инструментом в разделе /bitrix/admin/site_checker.php?lang=ru. Здесь вы можете найти полезные подсказки и рекомендации в случае возникновения проблем.
Вывод
Переход сайтов 1C-Битрикс на PHP 8.x может быть сложным процессом, но при правильном подходе и последовательности действий вы сможете успешно выполнить его и обеспечить работу вашего сайта на самой новой версии PHP.
Обратите внимание, что штатный администратор сайта может решить описанные задачи. Однако, в случае более сложных вопросов, потребуются специализированные знания.
Команда компании «Цифровой Элемент» очень давно работает с сайтами на платформе 1С-Битрикс, поэтому наши специалисты обладают профессиональными навыками и основательным опытом в разработке и оптимизации сайтов на этой платформе. Мы предполагаем, какие проблемы могут возникнуть при переходе на PHP 8, сможем их минимизировать или вовсе полностью избежать. А это поможет избежать ненужного простоя сайта и потери потенциальных клиентов.
Обязательно к прочтению:
- Миграция с PHP 7.4.x на PHP 8.0.x
- Переход на PHP 8.х в коробочных версиях Битрикс24


Перевод сайта на 1C-Битрикс на PHP 8.x: пошаговая инструкция
Вначале года компания 1С-Битрикс выпустила обновления для всех модулей и штатных компонентов, чтобы они могли работать с PHP 8. Пару месяцев назад они начали активно подталкивать разработчиков сторонних решений к обновлению кода своих продуктов. И сейчас это уже практически обязательная мера, вплоть для устранения решения, если оно не поддерживает версию PHP 8. А с августа 2023 года получать обновления платформы 1С-Битрикс не на PHP 8 уже невозможно. Многие владельцы сайтов на CMS Bitrix уже столкнулись с появлением красной строки в административной панели, призывающей к обновлению. Седьмая версия PHP объявлена устаревшей и не поддерживается. Что это значит? Для неё не выпускают исправления функциональных ошибок. Для неё не выпускают решения для исправления ошибок безопасности. А не обновленные модули платформы подвержены уязвимостям, о которых мы писали в нашей статье ранее «Атака на сайты на 1С-Битрикс» Получается, что переходить на PHP 8 – обязательно. Но если просто в панели управления хостингом изменить настройки и выбрать актуальную 8-ую версию, то сайт скорее всего сломается. В новой версии PHP изменились требования к написанию кода. То, что было допустимо в версии 7.4, теперь вызывает ошибки и приводит к сбоям работы сайта. Это означает, что весь код на вашем сайте должен соответствовать новым стандартам. Особенно это касается сторонних компонентов, шаблонов и модулей, установленных из Маркетплейса Bitrix. Вот здесь заключается настоящая проблема. Мы предлагаем два подхода к обновлению – стандартный, рекомендуемый и нестандартный, к которому в некоторых случаях приходится прибегать. Инструкция для перехода на PHP 8 – стандартный подход При переходе сайтов, использующих 1C-Битрикс, на PHP 8.x, необходимо учесть ряд особенностей. В данной статье будет представлена пошаговая инструкция, которая поможет вам успешно выполнить этот процесс. Шаг 1: Подготовка Перед началом перехода на PHP 8.x, убедитесь, что ваша версия 1C-Битрикс обновлена до последней доступной версии. Для этого вам нужна активная поддержка на вашей лицензии. Если она закончилась, продлите ее, купив ее за 25% от стоимости лицензии. Редакцию вашей лицензии можно проверить в разделе /bitrix/admin/update_system.php?lang=ru в секции "Ответ сервера обновлений". < Шаг 2: Совместимость модулей и компонентов Перед обновлением PHP до версии 8.x, убедитесь, что все используемые вами модули и компоненты 1C-Битрикс совместимы с этой версией PHP, как платные, так и бесплатные. Для этого вы можете воспользоваться специальным инструментом, предоставляемым 1C-Битрикс – «Проверка системы». Этот инструмент поможет вам определить, какие модули и компоненты нуждаются в обновлении или замене. Если лицензия на какое-то решение истекла, ее также нужно обновить. Стоимость продления обычно составляет 50% от стоимости решения. Подробности можно найти на странице Маркетплейса, кликнув по названию решения. Шаг 3: Резервное копирование Перед обновлением PHP рекомендуется сделать полное резервное копирование вашего сайта, чтобы в случае каких-либо проблем можно было бы вернуться к предыдущей версии. Шаг 4: Обновление PHP до версии 8.x После выполнения всех подготовительных мероприятий можно приступать к обновлению PHP. Переходите к настройке сервера, выбирая нужную версию PHP. Если ваш сайт небольшой, относительно новый и использует стандартные компоненты 1С-Битрикс без больших изменений, то он должен запуститься без особых проблем. Однако в большинстве случаев переход требует более глубокой работы. Поэтому рассмотрим альтернативный, нестандартный метод. Шаг 5: Исправление ошибок в работе сайта После перевода сайта на работу на PHP 8 вам потребуется проверить работу всех разделов сайта и в случае ошибок - оперативно их устранить. Часто встречающиеся ошибки: [TypeError] count(): Argument #1 ($value) must be of type Countable|array, null given (0) Non-static method cannot be called statically [TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method PHP Fatal error: $GLOBALS can only be modified using the $GLOBALS[$name] = $value syntax [TypeError] Cannot access offset of type string on string (0) и так далее… Какие исправлять стандартные ошибки написано ниже. Инструкция для перехода на PHP 8 – нестандартный подход Этот метод комбинирует шаги первого способа с некоторыми дополнительными действиями. Его следует использовать, если: У вас есть уникальный шаблон; Ваш сайт использует кастомные компоненты; Вы работаете с решениями, которые больше не поддерживаются разработчиками, но необходимы для вашего сайта; Вы вносили изменения в ядро Bitrix; У вас нет возможности или желания обновлять лицензии на сторонние решения. Обратите внимание, что лицензия на 1С-Битрикс должна быть активной в любом случае. Внесение изменений в ядро – это рискованный шаг. Для начала вам надо выполнить шаги 1 и 3 из стандартного метода. Создайте полную резервную копию вашего сайта. Обновите ядро, как в идеальном сценарии. Если вы вносили изменения в ядро или штатные компоненты, перенесите их в папку local. Обновите все установленные сторонние решения. Если вы вносили изменения в эти решения, также переносите изменения в local. Включите вывод ошибок в настройках, в файле /bitrix/.settings.php. Настройте хостинг и активируйте PHP 8. Как исправлять типовые ошибки перехода с PHP 7.x на PHP 8.x 1. Не статичный метод вызывается статично [TypeError] call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method CKladr::SetLocation() cannot be called statically (0) Решение: Находим файл, в котором прописан метод CKladr::SetLocation и указываем у него static Пример: public static function SetLocation()< . >2. Нет проверки типа данных при использовании функции для определенно типа данных php 8 стал более строгий, теперь переменные нужно проверять перед использованием методом, относящихся к определенному типу данных 1. Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, bool given in /home/bitrix/ext_www/cin.ru/bitrix/modules/security/classes/general/antivirus.php:559 Решение: Делаем проверку типа данных. Пример 1. Проверка массива: [TypeError] implode(): Argument #2 ($array) must be of type ?array, string given (0) [TypeError] array_key_exists(): Argument #2 ($array) must be of type array, string given (0) [TypeError] count(): Argument #1 ($value) must be of type Countable|array, null given (0) [TypeError] array_filter(): Argument #1 ($array) must be of type array, bool given (0) [TypeError] array_multisort(): Argument #1 ($array) must be an array or a sort flag (0) [TypeError] array_unique(): Argument #1 ($array) must be of type array, null given (0) [TypeError] in_array(): Argument #2 ($haystack) must be of type array, bool given (0) Решение: if(is_array($ar) && count($ar)>5) < . >Пример 3. Проверка массива: [TypeError] array_key_exists(): Argument #2 ($array) must be of type array, string given (0) Решение: if(!array_key_exists($arFirstLvl, $arItem['IBLOCK_SECTION_ID'])) < меняем на if(is_array($arItem['IBLOCK_SECTION_ID']) && !array_key_exists($arFirstLvl, $arItem['IBLOCK_SECTION_ID']))< Пример 4. Проверка массива: [TypeError] array_filter(): Argument #1 ($array) must be of type array, bool given (0) Решение: $arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE'] = array_filter($arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE']); меняем на if(is_array($arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE']))< $arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE'] = array_filter($arItem['PROPERTIES']['SIMILAR_SWITCH']['VALUE']); >Пример 5. Проверка числа: [TypeError] gmdate(): Argument #2 ($timestamp) must be of type ?int, string given (0) Решение: header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT'); to if(intval($lastModified)>0) < header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $lastModified) . ' GMT'); >3. Не статичный метод не может быть определен как статичный [Error] Non-static method Countrymask\Unitools::isAdminPage() cannot be called statically (0) Возможно метод по ошибке установлен как static заменяем public static function Location() < . >на public function Location() < . >4. Не отображаются наименования сторонних модулей в меню настроек модулей В стороннем модуле может не быть конструктора и лэнги задаются в методе одноименным с классом. В php 7.4 это работало, но в php 8.1 нужно использовать __construct(): function recaptchafree() < $this->MODULE_NAME = GetMessage("CAPTCHA_INSTALL_NAME"); $this->MODULE_DESCRIPTION = GetMessage("CAPTCHA_INSTALL_DESCRIPTION"); . > заменяем на function __construct() < $this->MODULE_NAME = GetMessage("CAPTCHA_INSTALL_NAME"); $this->MODULE_DESCRIPTION = GetMessage("CAPTCHA_INSTALL_DESCRIPTION"); . > 5. Ключ в массиве, заданный без кавычек, будет обрабатываться как константа. Если константа не определена, то появляется соответствующая ошибка: Undefined constant "HTTP_USER_AGENT" (0) Самая частая ошибка, обязательно у ключа в ассоциативном массиве должны быть кавычки: $_SERVER[HTTP_USER_AGENT] заменяем на $_SERVER['HTTP_USER_AGENT'] 6. В некоторых функциях обязательно должен быть задан аргумент. [ArgumentCountError] mktime() expects at least 1 argument, 0 given (0) Пример: заменяем mktime() на mktime(0) 7. Синтаксис доступа к смещению массива и строки с фигурными скобками больше не поддерживается. [ErrorException] E_COMPILE_ERROR Array and string offset access syntax with curly braces is no longer supported (0) Пример: $type0 = $type<0>; меняем на if(!is_array($type[0])) < $type0 = $type[0]; >8. На php 8.0 работает, ошибки php показывает, но на php 8.1 выдает 502 Bad Gateway В модуле Проактивная защита ставим исключение: Маски исключения: /bitrix/* Другие ошибки Ошибка:Undefined constant BX_RESIZE_PROPORTIONAL_ALT (0) Код: $arImg = CFile::ResizeImageGet($arSubItemImg, array('width' => 60, 'height' => 60), BX_RESIZE_PROPORTIONAL_ALT); Решение: $arImg = CFile::ResizeImageGet($arSubItemImg, array('width' => 60, 'height' => 60), BX_RESIZE_IMAGE_PROPORTIONAL_ALT); Ошибка:implode(): Argument #2 ($array) must be of type ?array, string given (0) Код: $arImg = $arOfferProps = implode(';', $arParams['OFFERS_CART_PROPERTIES']); Решение: $offersСartProperties = !empty($arParams['OFFERS_CART_PROPERTIES']) && is_array($arParams['OFFERS_CART_PROPERTIES']) ? $arParams['OFFERS_CART_PROPERTIES'] : []; $arOfferProps = implode(';', $offersСartProperties); Ошибка:in_array(): Argument #2 ($haystack) must be of type array, bool given (0) Код: if(in_array($arCurrentOffer['TREE'][$strName], $arShowValues)) Решение: if(is_array($arShowValues) && in_array($arCurrentOffer['TREE'][$strName], $arShowValues)) Проверка работоспособности сайта После обновления PHP до версии 8.x рекомендуется протестировать работу вашего сайта. Обратите внимание на работу всех компонентов, функциональность сайта и взаимодействие с базой данных. Если при проверке работоспособности сайта обнаружены какие-либо проблемы, связанные с переходом на PHP 8.x, необходимо выполнить дополнительные действия для их устранения. Обычно это включает в себя обновление модулей и компонентов, переписывание кода, исправление ошибок и так далее. Если при проверке системы, вы видите только белый экран, откройте исходный код сочетанием клавиш Ctrl + U и посмотрите каждую страницу сайта. Обязательно проведите тщательную проверку интерактивности веб-ресурса. Выполните все функциональные тесты, включая отправку форм, проверку работы калькуляторов и использование поиска на сайте. Также не забудьте проверить наличие ошибок в консоли (F12) браузера. Для более глубокой проверки сайта, воспользуйтесь стандартным инструментом в разделе /bitrix/admin/site_checker.php?lang=ru. Здесь вы можете найти полезные подсказки и рекомендации в случае возникновения проблем. Вывод Переход сайтов 1C-Битрикс на PHP 8.x может быть сложным процессом, но при правильном подходе и последовательности действий вы сможете успешно выполнить его и обеспечить работу вашего сайта на самой новой версии PHP. Обратите внимание, что штатный администратор сайта может решить описанные задачи. Однако, в случае более сложных вопросов, потребуются специализированные знания. Команда компании «Цифровой Элемент» очень давно работает с сайтами на платформе 1С-Битрикс, поэтому наши специалисты обладают профессиональными навыками и основательным опытом в разработке и оптимизации сайтов на этой платформе. Мы предполагаем, какие проблемы могут возникнуть при переходе на PHP 8, сможем их минимизировать или вовсе полностью избежать. А это поможет избежать ненужного простоя сайта и потери потенциальных клиентов. Обязательно к прочтению: Миграция с PHP 7.4.x на PHP 8.0.x Переход на PHP 8.х в коробочных версиях Битрикс240>
![]()
Россия , Челябинская область , Челябинск , ул. Энтузиастов, 2, оф. 200 Телефон: +7 (351) 220-45-35
Какие модули php нужны для битрикс
Курс предназначен для организаций, предоставляющих услуги хостинга и желающих получить компетенцию Рекомендуемый хостинг.
В курсе рассматриваются требования платформы Bitrix Framework к хостингу, вопросы установки, настройки продукта, а также вопросы инструментов и методов оптимизации серверов и баз данных для работы с системой
Для хостеров не является обязательным, но рекомендуется изучение курсов Контент-менеджер и Администратор. Базовый для получения более полного представления о возможностях системы и способах работы с ней.
Рекомендуется ознакомиться с опытом настройки и тестирования серверов в блоге Дениса Шаромова, а так же с отзывами клиентов о хостингах в группе Черный и белый список хостингов социальной сети компании «1С-Битрикс».
Если ваш хостинг на Windows, то вам может быть полезна группа 1С-Битрикс на платформе Windows Server 2008 в социальной сети сайта «1С-Битрикс». В ней пользователи делятся опытом работы системы на IIS 7.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов – ничего из этого оплачивать не нужно.
Сертификация
![]()
После изучения курса пройдите тесты на сертификацию. При успешной сдаче линейки тестов скачайте сертификат об успешном прохождении курса в формате PDF со страницы Моё обучение.
Также вы можете поделиться ссылкой на страницу со своими сертификатами. Для этого на странице Моё обучение отметьте опцию Разрешить публичный доступ к резюме студента
и скопируйте ссылку на страницу резюме
. Страница с вашим резюме будет доступна всем, кому вы отправите ссылку на неё.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:

уроке. Баллы опыта не влияют на получение сертификата.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, добавляем новые уроки. Поэтому итоговое количество баллов курса и количество набранных вами баллов могут различаться между собой. Набранные вами баллы, в отличие от суммы баллов курса, не пересчитываются. Не переживайте!
Отличный результат – это если общее число набранных вами баллов отличается от максимального на несколько процентов.
Комментарии к урокам
| На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий – не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщения нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой. | ![]() |
Если нет интернета

Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
Linux:
Calibre
FBReader
Cool Reader
Okular обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла – от 22.11.2023.
Курсы разработаны в компании «1С-Битрикс»
Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Какие модули php нужны для битрикс
Курс предназначен для организаций, предоставляющих услуги хостинга и желающих получить компетенцию Рекомендуемый хостинг.
В курсе рассматриваются требования платформы Bitrix Framework к хостингу, вопросы установки, настройки продукта, а также вопросы инструментов и методов оптимизации серверов и баз данных для работы с системой
Для хостеров не является обязательным, но рекомендуется изучение курсов Контент-менеджер и Администратор. Базовый для получения более полного представления о возможностях системы и способах работы с ней.
Рекомендуется ознакомиться с опытом настройки и тестирования серверов в блоге Дениса Шаромова, а так же с отзывами клиентов о хостингах в группе Черный и белый список хостингов социальной сети компании «1С-Битрикс».
Если ваш хостинг на Windows, то вам может быть полезна группа 1С-Битрикс на платформе Windows Server 2008 в социальной сети сайта «1С-Битрикс». В ней пользователи делятся опытом работы системы на IIS 7.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов – ничего из этого оплачивать не нужно.
Сертификация
![]()
После изучения курса пройдите тесты на сертификацию. При успешной сдаче линейки тестов скачайте сертификат об успешном прохождении курса в формате PDF со страницы Моё обучение.
Также вы можете поделиться ссылкой на страницу со своими сертификатами. Для этого на странице Моё обучение отметьте опцию Разрешить публичный доступ к резюме студента
и скопируйте ссылку на страницу резюме
. Страница с вашим резюме будет доступна всем, кому вы отправите ссылку на неё.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:

уроке. Баллы опыта не влияют на получение сертификата.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, добавляем новые уроки. Поэтому итоговое количество баллов курса и количество набранных вами баллов могут различаться между собой. Набранные вами баллы, в отличие от суммы баллов курса, не пересчитываются. Не переживайте!
Отличный результат – это если общее число набранных вами баллов отличается от максимального на несколько процентов.
Комментарии к урокам
| На каждой странице курса авторизованный на сайте посетитель может дать комментарий к содержимому страницы. Комментарий – не форум, там не ведётся обсуждений или разъяснений. Это инструмент для сообщения нам об ошибках, неточностях. Для отправки комментария воспользуйтесь расположенной в правом нижнем углу окна браузера кнопкой. | ![]() |
Если нет интернета

Скачать материалы курса в формате EPUB. Файлы формата EPUB Чем открыть файл на
Android:
EPUB Reader
CoolReader
FBReader
Moon+ Reader
eBoox
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
Linux:
Calibre
FBReader
Cool Reader
Okular обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла – от 22.11.2023.
Курсы разработаны в компании «1С-Битрикс»
Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
