Ошибки АСПРО SmartSEO после обновления платформы 1С-Битрикс
Обновления платформы 1С-Битрикс — это важная часть работы с сайтом, которая позволяет улучшать его функциональность, безопасность и производительность. Однако, с обновлениями могут возникать различные ошибки, особенно если вы используете сторонние решения, такие как Aspro SmartSEO.
Обновление платформы 1С-Битрикс — это процесс, включающий в себя установку новых версий программного обеспечения, которое управляет вашим сайтом. Обновления могут содержать:
- Исправления ошибок
- Новые функции
- Улучшения безопасности
- Оптимизацию производительности
Однако, несмотря на все преимущества, обновления могут привести к различным проблемам, особенно если ваш сайт использует сложные модули или кастомные решения.
Ошибки в модуле Aspro SmartSEO
Модуль АСПРО SmartSEO, который используется для оптимизации под поисковые системы, также может вызывать ошибки после обновления. Это может быть связано с изменениями в функционале модуля или его конфигурации.
Например:
После обновления платформы 1С-Битрикс до последней версии возникла серьёзная ошибка, приводящая к остановке работы сайта:
Fatal error: Declaration of Aspro\Smartseo\Models\SmartseoFilterRuleTable::getRowById($id) must be compatible with Bitrix\Main\ORM\Data\DataManager::getRowById($id, array $parameters = []) in /bitrix/modules/aspro.smartseo/lib/models/smartseofilterrule.php on line 221
Суть проблемы
Недавние обновления ядра Битрикс затронули базовый класс
Bitrix\Main\ORM\Data\DataManager.
В частности, в метод getRowById() был добавлен второй необязательный параметр $parameters. В модуле АСПРО SmartSEO используются свои классы-наследники этого метода, которые не учитывают новое объявление с дополнительным параметром. Из-за этого возникает конфликт (declaration mismatch), что приводит к сбоям и падению сайта.
Инструкция по устранению ошибки
Если у вас отсутствует активный договор на техническую поддержку модулей АСПРО или нет возможности сразу установить официальное обновление, проблему можно решить самостоятельно, внеся изменения в несколько файлов.
Внимание: Перед началом любых правок обязательно создайте полную резервную копию вашего сайта и базы данных!
-
Подключитесь к серверу с помощью FTP-клиента или воспользуйтесь файловым менеджером хостинга. Найдите файл, на который ссылается сообщение об ошибке, например:
/bitrix/modules/aspro.smartseo/lib/models/smartseofilterrule.php. -
Откройте этот файл в удобном текстовом редакторе с поддержкой кода, например, Notepad++ или Visual Studio Code.
-
Внутри файла найдите строку, где объявлена вызывающая ошибку функция. Она будет выглядеть примерно так: public static function getRowById($id)
-
Следуйте этим шагам, чтобы внести необходимые исправления в код.
Задача по изменению сигнатуры метода
Необходимо модифицировать объявление функции getRowById, добавив второй аргумент. Новый параметр должен называться $parameters, иметь тип Array и по умолчанию принимать пустой массив. Итоговая сигнатура метода должна выглядеть так:
public static function getRowById($id, array $parameters = [])
Обратите внимание, что параметр $parameters обязателен именно как массив и инициализируется значением по умолчанию — пустым массивом. Это связано с новыми требованиями ядра Битрикс.
Дальнейшие действия по исправлению ошибки
- Сохраните внесённые корректировки и закройте файл.
Проверьте работу сайта — ошибка должна исчезнуть.
Рекомендуемые файлы для проверки
Проблема может затрагивать не один, а несколько классов внутри модуля. Чтобы избежать повторного возникновения ошибки, советуем сразу проверить и& при необходимости исправить следующие файлы, расположенные в директории: /bitrix/modules/aspro.smartseo/lib/models/
Инструкция по обновлению метода getRowById
В каждом из перечисленных файлов:
smartseofilterrule.phpsmartseofiltertag.phpsmartseonoindexconditiontable.phpsmartseonoindexruletable.phpsmartseoseotexttable.php
необходимо найти функцию getRowByIdи заменить её согласно указанному шаблону.
Рекомендации после внесённых изменений
После корректировки кода обязательно выполните комплексное тестирование SEO-фильтра.
Проверьте работу разделов каталога, убедитесь в корректном применении фильтров, а также в правильном формировании ЧПУ-адресов и мета-тегов (title, description).
Обновления платформы 1С-Битрикс — это необходимая мера для поддержания работоспособности и безопасности вашего сайта. Однако, как мы увидели, они могут вызывать различные ошибки, начиная от проблем с совместимостью модулей и заканчивая сбоями в работе функций, таких как getRowById($id) и фильтра АСПРО SmartSEO. Для успешного устранения этих ошибок важно проводить тщательную проверку перед обновлением и быть готовыми к возможным изменениям.
Важно: это временная мера. Компания АСПРО уже выпустила обновление модуля, полностью совместимое с новой версией Битрикс.
Для надежной и безопасной работы рекомендуется продлить лицензию и установить актуальную версию решения Аспро.
Продление лицензий Битрикс и продуктов Аспро можно оформить у нас.

Добавить комментарий