Как узнать версию дополнения 1С-Битрикс для торговых конфигураций 1С?
- Администратор
- Группа: Администратор
- Сообщений: 8995
- Регистрация: 20.02.2010
![]()
Версия дополнения 1С-Битрикс для торговых конфигураций 1С — это четыре целых неотрицательных числа с точками между ними, например: «4.0.5.2».
Узнать версию дополнения 1С-Битрикс для торговых конфигураций 1С можно на окне «О программе…» примерно посередине по вертикали в графе «Наименование»:
- ← Предыдущая тема
- Документация к модулю «1С:Управление торговлей»
- Следующая тема →
Как узнать версию php онлайн

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org в прошлый раз мы с вами рассмотрели механизм интеграции драйверов в ISO образ Windows 7/11, это было полезно при установке операционной системы на нестандартные модели SSD дисков. Идем далее и сегодня я хочу вас научить определять версию PHP на сайте онлайн. Иногда данная информация может быть полезна с точки зрения информационной безопасности и случаях, когда требуется устранить ошибку на сервисе, разработчику или службе технической поддержки данная информация может оказаться так же важной. Ниже я покажу различные сервисы позволяющие решить поставленную задачу, а так же небольшой код PowerShell, будет интересно.
Почему вы можете не узнать версию PHP при проверке онлайн
Сразу оговорюсь, что сайтов позволяющих получать эту информацию очень много, они пачками рождаются и пачками помирают, я хочу вам рассказать, о своем списке, который я использую в практике.
1. Как узнать какой php на сайте через PowerShell
$url = «https://pyatilistnik.info/»
$response = Invoke-WebRequest -Uri $url
$poweredByHeader = $response.Headers[«X-Powered-By»]
Write-Host «Заголовок X-Powered-By: $poweredByHeader»
На выходе вы получите значение поля X-Powered-By и версию PHP.
Заголовок X-Powered-By: PHP/7.4.33

И приведу скрипт когда у вас есть пачка сайтов:
# Шаг 1: Получаем список адресов сайтов из файла и кладем в переменную
$websiteUrls = Get-Content -Path «C:\download\sites.txt»
# Шаг 2 и 3: Проверяем заголовок X-Powered-By на каждом сайте и выводим информацию
foreach ($url in $websiteUrls) try $request = Invoke-WebRequest -Uri $url
$xPoweredBy = $request.Headers.»X-Powered-By»
Write-Output «Сайт: $url»
Write-Output «Значение X-Powered-By: $xPoweredBy»
Write-Output «»
> catch Write-Output «Не удалось получить информацию для сайта: $url»
Write-Output «»
>
>
- Вам нужно заменить «C:\download\sites.txt» на путь к вашему файлу, содержащему адреса сайтов.
- Код будет выполнять запросы на каждый сайт в цикле foreach. Если сайт недоступен или не возвращает заголовок X-Powered-By, будет выведено соответствующее сообщение.
- Информация выводится в консоль с помощью Write-Output. Вы можете изменить эту часть кода, чтобы выводить результаты в файл или другое место по вашему выбору.

2. Как узнать версию php через Яндекс Вебмастер
Если у вас есть учетная запись почты Яндекс, то вы можете воспользоваться их бесплатным сервисом по проверке сайта. Перейдите скопируйте ссылку в адресную строку:
https://webmaster.yandex.ru/tools/server-response/
Вам необходимо указать в поле «Опрашиваемый URL» нужный вам сайт и нажать кнопку «Проверка«.

На выходе вы увидите версию PHP в поле заголовка X-Powered-By. В моем примере, это PHP 7.4.33.

3. Как узнать версию php через calcus.ru
Еще один простенький сервис по проверке заголовков на сайте. Переходим по адресу:
https://calcus.ru/
Указываем URL сайта и нажимаем проверить. Через пару секунд вы увидите результат с версией PHP используемой на сайте.
4. Проверка PHP версии через tools.simpletools.nl
Проверить онлайн версию PHP на сайте можно и через сервис:
https://tools.simpletools.nl/
По мимо этого он еще и проверяет сжатие GZIP. Указываем в поисковой строке ваш адрес сайта и начинаем исследование. Не забудьте нажать кнопку посмотреть все заголовки.

5. Как проверить версию PHP на сайте через last-modified.com
Есть полезный ресурс, позволяющий определять правильность работы заголовков last-modified, и дополнительно так же проверяет значение заголовков X-Powered-By. Перейдите на сайт:
https://last-modified.com/
Укажите адрес нужного ресурса, что вы проверяете и нажмите соответствующую кнопку. На выходе если на сайте работает заголовок X-Powered-By, то вы увидите информацию, о версии PHP.

Данный список можно продолжать почти до бесконечности, так что я пока остановлюсь на 5 инструментах, но если что-то подвернется еще интересное, то добавлю в статью. Надеюсь, вы поняли, что узнать версию php сайта очень просто и быстро при соблюдении определенных настроек со стороны ресурса. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.
Популярные Похожие записи:
Как отключить X-Powered-By, за минуту- Как массово поменять пароль локального администратора в домене
Как сделать 301 редирект на McHost- Как узнать уровень износа SSD дисков на серверах Dell
- Как узнать, нуждается ли удаленный сервер в перезагрузке
Как включить Receive Side Scaling (RSS) на сетевом интерфейсе
Как узнать версию своего браузера
В любом браузере можно посмотреть версию. Точный алгоритм отличается у каждой модели браузера, но обычно номер версии отображается в окне О браузере (О программе).
Ссылку на окно с информацией о браузере можно найти в меню браузера. Пункт меню может выглядеть, например, так: Справка -> О программе (в русской версии) или Help -> About [browser] (в английской).
Например, в русской версии Google Chrome 83 это меню выглядит так:

Откроется страница О программе:

В этом окне выводится подробная информация о версии браузера.
Bitrix — обновляем PHP до версии 8.2

Рассказываем, как перевести CMS Bitrix на PHP 8.2, получить новые возможности и улучшить производительность. Советы по безопасному обновлению ядра и модулей от веб-разработчиков.
В админке «1С-Битрикс» на странице обновления есть такое сообщение:

Для CMS Bitrix версия PHP 7.Х устарела. Исправления функциональных ошибок и ошибок безопасности Bitrix для этой версии больше не выпускает. Компания предлагает всем своим клиентам обновиться.
Это сообщение расстроило разработчиков. Переход на новую версию PHP очень болезненно воспринимается для легаси кода, так как есть важные обновления синтаксиса PHP, ломающие обратную совместимость. Многие модули из маркетплейса давно заброшены и не адаптированы под новые версии PHP.
Готовимся к обновлению
Ориентировочно на обновление ядра с большим прыжком в версиях PHP закладывается от 15-20 часов. Если проект «запущен», их может не хватить. Добавляем страховочный запас 10-15 часов исходя из объема легаси.
Составляем полный чеклист проверки функционала сайта, чтобы не забыть протестировать.
Рядовые шаги для обновления «1С-Битрикс»:
- Обновить Bitrix локально, исправить баги после обновления.
- Обновить версию PHP локально, исправить баги.
- Обновить на тестовом стенде, если первые два пункта не выполнялись сразу на тесте.
- Исправить баги после тестирования.
- Обновить на бою.
- Исправить баги после обновления на бою.
Несколько важных деталей, которые нужно учесть перед началом обновления:
— До версии 22.500.700 ядра Bitrix можно спокойно обновляться на PHP 7.4, проблем с обратной совместимостью внутри ядра не найдено.
— Шаг 6 почти неизбежен, потому что на 100% проверить тестовый стенд не удастся. Чаще всего есть какой-то код, который отрабатывает в процессе интеграции с боевой площадкой. Если тестовой площадки для интеграции вовсе нет, тогда можно проверить ее только фиктивно, например, через Postman. Все равно придется проверить работоспособность на бою.
— В 9 из 10 случаев проект развернут не в Docker, следовательно нет возможности проставить нужные параметры PHP при обновлении с помощью версионного контроля или обновления утилит для него. Можно только фиксировать его отдельно в копии конфигурационных файлов или в списке утилит для установки.
Шаг 1. Обновляем Bitrix на локальном хосте
Начинаем обновление Bitrix на локальном хосте или на удаленном тестовом сервере.
Базы данных (БД) и ядро должны быть свежими, чтобы исключить ошибки, не связанные с обновлением Bitrix. На локальный хост или тест накатываем свежий бэкап ядра с БД через restore.php, публичная часть не обязательна. Если бэкап сгенерировать не удается, помогут утилиты mysqldump и rsync с опцией delete.
В административной части на странице /bitrix/admin/site_checker.php?lang=ru в разделе «Тестирование базы данных» ошибок быть не должно.
Обновление ядра и модулей мы оставляем на плечи системы обновления Bitrix, исправление кода проекта — на версионный контроль.

Проблемы, которые могут возникнуть в процессе обновления:
1. Ошибка в синтаксисе PHP. При обновлении может зацепиться какой-нибудь обработчик события, чаще всего для построения кастомного типа свойства инфоблока.

Решение. Лезть в код и фиксить ошибку. Каждую такую ошибку фиксировать у себя в доке, чтобы можно было быстро сделать исправление при обновлении на тесте и на бою. Как только ошибка будет исправлена, можно продолжить обновление.
2. Ошибка в MySQL. Пользователю БД может не хватать прав для обновления таблиц или выполнения команд типа set innodb_strict_mode=ON. Либо конфигурация сервера может не соответствовать боевому.
Решение. Выполнить нужные конфигурации БД, например, выделить для БД больше буферной памяти или расширить права доступа пользователя под которым общается Bitrix с БД. Перезапустить обновление.
3. Заблокирована система обновлений. Ошибка частая, так как тестовые хосты имеют открытый доступ из интернета. Bitrix обнаруживает такие хосты и блокирует систему обновления не по лицензии.

Решение. На время обновления на тестовые хосты повесить базовую авторизацию или вовсе выключить их. Написать в техподдержку Bitrix запрос на удаление ошибки обновления. После этого — продолжить обновление.
4. Не хватает прав на изменение файлов. Распространенная проблема Linux, когда у пользователя сервера не хватает прав, чтобы создать или изменить нужные файлы ядра. Это особенно заметно при обновлении ядра.
Решение. Настроить конфигурацию сервера, чтобы он работал от имени текущего пользователя, не рутом. Выполнить рекурсивную смену прав в ядре командой chown -R. После таких операций проблема должна уйти и можно продолжить обновление.
Как только обновление прошло успешно, переходим на обновление модулей по тому же принципу.
Если модуль платный и лицензия истекла, ее нужно продлить. Если ошибка после обновления модуля не пропала, то модуль необходимо удалить. Если править модуль, то в дальнейшем его нельзя будет корректно обновить.
Если модуль очень старый и давно не обновляется, его придется перенести в локальную область и содержать самостоятельно.
После успешного обновления Bitrix и модулей переходим в публичную часть, проверяем основной важный функционал сайта, фиксим ошибки PHP или конфликты с API Bitrix и модулей.
Приступаем к обновлению версии PHP после обновления Bitrix и проверки работы проекта.
Здесь может возникнуть больше всего сложностей, так как кодовая база ссылалась на «помощь» со стороны PHP 7.4. Код, который раньше выполнялся на PHP 7.4 с предупреждениями, на PHP 8.2 будет падать с фатальной ошибкой. Это позволит определить нерабочий функционал.
Основные критичные для Bitrix ошибки, которые вылезают после обновления версии PHP.
1. Нестатические методы для обработчиков событий. В PHP 8.2 больше нельзя вызывать нестатические методы через статический синтаксис. Это касается обработчиков событий. Если они находятся внутри класса в виде функции, то, чтобы ошибка ушла, в каждую такую функцию нужно будет добавить public static.

2. Статический вызов нестатических методов. Ряд модулей в проекте были перенесены в локальную область уже очень давно, синтаксис сильно устарел. Было много методов через чистый function, поэтому нужно добавлять к каждому методу public static.

3. Строгая типизация при работе с стандартными функциями PHP. В PHP 8.2 нельзя передавать в функцию count() значения типа null или string. В нашем случае компонент Menu был построен на вложенных массивах внутри параметра ADDITIONAL_LINKS. Так делать нельзя, так как в ядре Bitrix проверка выполняется через Rel2Abs — она принимает на вход строку, но не массив. Этот функционал был переписан через дополнительные параметры.

4. Обращение к строке как к массиву. В шаблонах часто возникают старые ошибки с ключом VALUE для вывода значения свойств. Оно не у всех есть, поэтому страница падает.

5. Старые обработчики событий Bitrix, которые ссылаются на несуществующие классы/методы. Обработчики событий модуля регистрируются не через код, а записываются в таблицу b_module_to_module в БД. Если когда-то был использован кастомный модуль, который меняли так, что доступа к обработчикам нет; или модуль был удален на уровне кодовой базы, а из БД ничего не стиралось — здесь это проявится, возникнут фатальные ошибки при попытке их исполнения. Решение простое: корректируем эти обработчики события в БД или удаляем строки вовсе. Можно это сделать сразу на бою/тестовом хосте, чтобы после обновления не натыкаться на такие проблемы.

В процессе исправления ошибок очень важно не забывать, что главная задача — обновление ядра и версии PHP. Рефакторить код на этом этапе НЕ НУЖНО.
Шаг 2. Проверяем на тестовом контуре
Автотестов и каких-либо тестов на написанный код в Bitrix чаще всего нет. А разработчик может обнаружить только столько проблем, на сколько он наткнется. Поэтому обязательно нужно делать проверку на доступном заказчику/тестировщику тестовом хосте.
Выполняем обновление на тестовом хосте, если проблем на локальном больше найти не можем:
- собираем в версионный контроль все изменения кодовой базы проекта,
- на тесте выполняем обновление ядра, смену версии PHP, подтягиваем через версионный контроль исправления кода,
- отдаем сайт на проверку тестировщику или заказчику.
При тестировании важно отсеивать только ошибки, связанные с обновлением.
- Если ошибка воспроизводится и на бою, выносим в отдельную задачу.
- Если ошибка связана с тем, что проект развернут на тестовом хосте, игнорируем, так как настройка тестового стенда будет отдельной задачей.
- Если наблюдаются просадки по производительности, это нормально — тестовый хост на несколько порядков медленнее прода.
Проверка на тестовом хосте не даст гарантии, что на тесте новых проблем не будет, так как часто нет возможности проверить интеграции или обмен с «1С-Битрикс».
На тесте необходимо также тщательно проверять весь функционал, как и локально. Обычно на тесте появляются новые ошибки, которые не удалось обнаружить локально.
Если на проекте есть тестировщик, то ему нужно проверить весь функционал сайта, включая формирование фидов. А при наличии тестовых площадок — еще и общение с внешними системами.
На практике возникали проблемы с интеграциями, в частности с генерацией фидов разной степени важности, ошибками в обработчиках событий при интеграции с внешними площадками. Их обнаруживали только на бою, что очень расстроило заказчика. Поэтому важно проявлять проактивность и следить за выполнением агентов на тесте или cron-скриптов. Скорее всего после смены версии PHP поменялась версия и PHP CLI. Поэтому необходимо проверить работу всех cron-скриптов.
Шаг 3. Обновляем Bitrix на бою
Мы успешно проделали предыдущие этапы, багов больше не видим, понимаем, что все в порядке.
На проде обновление Bitrix занимает от 1 до 5 часов. Многое зависит от объема проекта и потенциальных багов, на которые можно наткнуться после, даже с учетом проверок на тесте.
Предварительно проверяем работу системы обновлений Bitrix на бою, так как в нужное время она может заблокироваться и придется переносить время обновления. Техподдержка работает с 10:00 до 19:00.
Обновляем систему в неактивные часы в начале или в середине рабочей недели.
Обычно обновление планируют в 20:00-21:00, чтобы было меньше пользователей., т.к. сайт в это время будет недоступен.
Выполняем стандартные шаги обновления Bitrix:
- Закрываем публичную часть. В настройках главного модуля жмем кнопку «Закрыть доступ для посетителей». У всех пользователей, кроме админов, будет заблокирован доступ к публичной части. Это делается для того, чтобы в процессе подготовки бэкапа не появились новые заказы или отзывы, которые потеряются, если придется восстанавливаться из бэкапа.
- Делаем полный бэкап сайта. Чтобы ускорить процесс, рекомендуем исключить из бэкапа папку Upload, а также разделы с кэшем Bitrix и другими бэкапами сайта.
- Обновляем Bitrix и модули по аналогии с локальной и тестовой версией. Проверяем результат в публичной части.
- Обновляем версию PHP, тянем через версионный контроль исправления кода, выполняем проверку в течении 10-15 минут на наличие ошибок PHP. Важно их быстро обнаружить и исправить. Для быстрого деплоя таких «хотфиксов» рекомендуем настроить удаленный деплой через IDE, например, PHPStorm. Это позволит править файлы не через файловую систему, а быстро находить проблемные места и вносить корректировки через развернутый проект. После окончания работ все изменения можно будет собрать на бою через версионный контроль и залить в репозиторий.
- Открываем публичную часть, проверяем работу сайта, запускаем тесты и проводим ручное тестирование критичного функционала, правим ошибки, следим за логами Bitrix на наличие скрытых ошибок. На этом этапе можно сказать, что обновление успешно завершено. В течении суток может что-то всплыть, поэтому оставляем сайт на ночь. На следующий день смотрим на логи ошибок, правим.
Важно не забывать, что ошибки рано или поздно закончатся, поэтому относиться к ним нужно спокойно и размеренно. Ведь код, который раньше выполнялся с предупреждениями, скорее всего был построен неверно или интерпретировался не явно, поэтому функционал мог сбоить или не работать. А теперь часть легаси может актуализироваться и возобновить работу.
Если всплыла ошибка катастрофических масштабов на бою, то останавливаем обновление, закрываем публичную часть, разворачиваем резервную копию Bitrix, которую мы сделали перед обновлением. Если есть изменения, ломающие обратную совместимость, откатываем исправления кода.
Основные подводные камни при обновлении до PHP 8.2
У Bitrix есть остроспецифические проблемы, кроме очевидных для каждого этапа:
1. Обмен с 1С. При обновлении или создании товаров из 1С могут «посыпаться» товары с неверно объявленными свойствами. Например, для типа строка передается массив. Это видно в логах PHP, но исправлять нужно либо на уровне Bitrix, либо на уровне 1С. Чаще исправляем на стороне сайта, внесение изменений в 1С чревато серьезными последствиями.
2. Плавающие ошибки. Часто функционал отрабатывает через раз — то ли в count() передается массив, то ли просто значение null. Это классический пример небезопасного программирования. Для понимания обычно хватает проверки на тип данных.
3. Нестандартное обращение с API Bitrix. У нас все расписано на примере компонента меню Bitrix, файл меню был дополнен руками для создания вложенных массивов. Это только одна из возможных проблем, когда приходится переписывать работу компонента через что-то, что не отваливается при запуске.

4. Обмен с интегрируемыми системами. Чаще всего интеграция Bitrix с внешней системой реализуется модулем с маркетплейса, который обновляет создавшая его команда. Обновление интеграции сводится к обновлению модуля Bitrix из админки. Бывает, что интеграцию пишет команда разработки для определенной задачи, тогда и ее обновление в идеале должна сделать команда перед обновлением Bitrix.
Intensa — производственное агентство для e‑commerce.
Мы помогаем торговым сетям увеличивать выручку интернет-магазинов за счет быстрой и отлаженной аутсорс-разработки.
