• Гость в разделе 1С-Битрикс все ссылки на модули, шаблоны и т.д. помещаем под хайд не менее 150 реакций.
  • Не создавайте несколько учетных записей, вы будете заблокированы! Для получения дополнительной информации о правилах, ограничениях и многом другом посетите страницу «Помощь».
    Нашли неработающую ссылку? Используйте кнопку «Жалоба»!

1С-Битрикс Скрипт Скрипт нативного обновление модулей БЕЗ КЛЮЧА!

  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1 из 554
Что делает скрипт?
Он позволяет скачать модули и дельта обновления к ним используя ключ битрикса.
Все обновления скачиваются в папку /bitrix/updates в особый формат ".upd"
Так как модуль и обновления это всего лишь файл его становиться легко переносить, передавать, делиться.
Но самое главное, что установка обновлений в скрипте происходит ТОЧНО так же как и в битриксе при использовании АКТИВНОГО КЛЮЧА.

Таким образом вам нет необходимости, устраивать пляски с бубном, после обновления модуля. Раньше приходилось переустанавливать модули и шаблоны, раскопировать новые файлы, запускать визарда и т.п извращения. И не всегда это приводило к нужному результату. Иногда помогало только полное удаление и повторная установка модуля.

Теперь все просто, достаточно нажать на кнопку установить напротив свеженького дельта обновления модуля и тут же будет все установлено: раскопированы новые файлы, выполнены нужные запросы к БД, запущены служебные скрипты.

Я прошу всех релизеров, переходить на данный формат.
Публиковать не заархивированные папки с модулем, а именно файлы ".upd", получая их при помощи скрипта - это формат битрикса и этим все сказано.

В связи с потоком вопросов, типо: "как поставить?" и "почему у меня не получается?", предлагаю более детальную схему работы скрипта. Если у вас уже установлен 1С-Битрикс, то можно начать с пункта 3.

  1. Установка Битрикса (Демо, либо из исходников)
  2. В админке делаем обновление ядра — этот шаг не является обязательным
  3. Скрипт нативной установки распаковываем любую папку в корень сайта. Сами решения в формате дельт распаковываем в /bitrix/updates/
  4. Запускаем первый раз скрипт нативной установки и патчим ядро (происходит автоматически, этот шаг является обязательным);
  5. Сервер обновления меняем на localhost
  6. Далее, скриптом нативной установки устанавливаем в систему решение, последовательно, не нарушая сквозную нумерацию. Помните - скрипт заменяет процедуру покупки и внесения купона в систему, а так же загрузку решения из Маркетплейс
  7. Вносим в файл not_mine.php (он появится в корне сайта сразу после патча ядра) в массив все решения, которые будем прятать, например, при желании спрятать aspro.kshop вносим это вместо 'module.name1' и получаем 'aspro.kshop'.
  8. Инсталлируем раскопированное скриптом решение в Админке системы - в закладке Маркетплейс → Установленные решения.
  9. Если процедура установки решения того требует, то запускаем Визард установки решения или на главной странице жмем кнопку "Опробовать новое решение".

Измененная инструкция после обновления скрипта до версии 2.4.0 и выше:

Последняя версия скрипта, совместимость с PHP 8.1


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

Теперь скрипт умеет скрывать собственные модули, которые не входят в вашу редакцию.
Достаточно внести название модуля в список файла "not_mine.php" и запустить скрипт "get_function.php" для автоматического внесения изменений.

Скрипт дополнительно патчит файл: (искать по слову PATCH)
Код:
Расширить Свернуть Скопировать
/bitrix/modules/main/classes/general/update_client.php
Изменения в файле: get_function.php
Код:
Расширить Свернуть Скопировать
foreach($arModules as $val){
$arClientModules[$val.'-not_mine'] = $arClientModules[$val];
unset($arClientModules[$val]);
}
Заменяем на:
Код:
Расширить Свернуть Скопировать
foreach($arModules as $val){
if(isset($arClientModules[$val]))unset($arClientModules[$val]);
}

Устаревшие версии
Updater_v (2.4.1) php 7.4/8.0

Updater_v (2.4.0.1 beta)

Updater_v (2.4.0.5 beta) newDesign

Updater_v (2.4.003) Максимальная длинна ключа теперь составляет 30 символов

Updater_v (2.4.0 beta)

Updater_v (2.3.0 beta)

1. Функция session_start была вызвана до запуска ядра Bitrix. Или когда скрипт перекидывает на главную страницу, решение:
В файле get_update.php найти session_start(); заменить на //session_start();

2. При установке решения, бесконечная загрузка, проблема наблюдается редко, решение:
Включить режим правки
 
Последнее редактирование:
Может кто-нибудь подсказать.

Не работает скрипт обновления. Происходит бесконечная загрузка и все.

В консоли отловил ошибку Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Причем и локально на open server и на хостинге (beget). Битрикс обновлен до самой последней версии. PHP 8.1

Скрипт версии 2.4.1

Локально запустил отладку и вижу что ошибка происходит при вызове функции разархивации, в файле get_upd.php на строке

$unarch = unarch($request['file']);

Это функция модуля get_function.php

Внутри ошибка происходит на строке - fclose($fp1);

Это же просто закрытие файла.
Причем в папке /bitrix/updates/ появляется папка "update_aspro.max.100.0.0.mod.upd/aspro.max", а в ней файл desktop.ini

Вот строка вызова get_upd.php

Есть версии как исправить?
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #542 из 554
Может кто-нибудь подсказать.

Не работает скрипт обновления. Происходит бесконечная загрузка и все.

В консоли отловил ошибку Failed to load resource: the server responded with a status of 500 (Internal Server Error)

Причем и локально на open server и на хостинге (beget). Битрикс обновлен до самой последней версии. PHP 8.1

Скрипт версии 2.4.1

Локально запустил отладку и вижу что ошибка происходит при вызове функции разархивации, в файле get_upd.php на строке

$unarch = unarch($request['file']);

Это функция модуля get_function.php

Внутри ошибка происходит на строке - fclose($fp1);

Это же просто закрытие файла.
Причем в папке /bitrix/updates/ появляется папка "update_aspro.max.100.0.0.mod.upd/aspro.max", а в ней файл desktop.ini

Вот строка вызова get_upd.php

Есть версии как исправить?
site.com/upd/get_update.php запускаете ведь ?
 
site.com/upd/get_update.php запускаете ведь ?
Да именно так и запускаю.
В общем сейчас уточнил.
Ошибка возникает в
fclose($zp);
$zp - не определена, это null
Поэтому и валится с ошибкой.

А что именно должно быть вместо $zp, не пойму по коду
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #544 из 554
Да именно так и запускаю.
В общем сейчас уточнил.
Ошибка возникает в
fclose($zp);
$zp - не определена, это null
Поэтому и валится с ошибкой.

А что именно должно быть вместо $zp, не пойму по коду
Тоже не пойму, не сталкивался даже. Интересно какой архив требует если файлы формата upd
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #545 из 554
В попробуйте пхп на 8.2 воткнуть, может заведется, либо 8.0
 
В попробуйте пхп на 8.2 воткнуть, может заведется, либо 8.0
А смысл? Если в функции переменная не определена, в любом варианте ошибка будет.
В общем я закомментировал строку fclose($zp);
После чего распаковка произошла
Папка "\bitrix\updates\update_aspro.max.100.0.0.mod.upd\aspro.max" заполнилась подпапками и файлами
Но дальше в get_upd.php словил экзепшн на строке
$uptd = CUpdateClientPartner::UpdateStepModules($updatesDir, $strError = '');

Ошибка - CUpdateClientPartner::UpdateStepModules(): Argument #2 ($strError) cannot be passed by reference

Продолжаю разбираться
 
А смысл? Если в функции переменная не определена, в любом варианте ошибка будет.
В общем я закомментировал строку fclose($zp);
После чего распаковка произошла
Папка "\bitrix\updates\update_aspro.max.100.0.0.mod.upd\aspro.max" заполнилась подпапками и файлами
Но дальше в get_upd.php словил экзепшн на строке
$uptd = CUpdateClientPartner::UpdateStepModules($updatesDir, $strError = '');

Ошибка - CUpdateClientPartner::UpdateStepModules(): Argument #2 ($strError) cannot be passed by reference

Продолжаю разбираться
В общем эта ошибка лечится просто.
Вместо
$uptd = CUpdateClientPartner::UpdateStepModules($updatesDir, $strError = '');
Заменяем на
$strErr = '';
$uptd = CUpdateClientPartner::UpdateStepModules($updatesDir, $strErr);

Собственно пишу, это тут, вдруг кому поможет. Я по форуму видел что народ с подобными проблемами сталкивался, а ответа не было.
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #548 из 554
В общем эта ошибка лечится просто.
Вместо
$uptd = CUpdateClientPartner::UpdateStepModules($updatesDir, $strError = '');
Заменяем на
$strErr = '';
$uptd = CUpdateClientPartner::UpdateStepModules($updatesDir, $strErr);

Собственно пишу, это тут, вдруг кому поможет. Я по форуму видел что народ с подобными проблемами сталкивался, а ответа не было.
Добавлю в решения проблем в первый пост
 
Добавлю в решения проблем в первый пост
А может еще подсказать.
Обновление шаблона прошло успешно. с версии 1.5.4 на версию 2.1.2
В админке все ок.
А сам сайт стал нерабочим. Такое ощущение что шаблону хана. Куда дальше копать? Или же считай заново все делать?
Писал не я его ранее, я только обновляю
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #550 из 554
А может еще подсказать.
Обновление шаблона прошло успешно. с версии 1.5.4 на версию 2.1.2
В админке все ок.
А сам сайт стал нерабочим. Такое ощущение что шаблону хана. Куда дальше копать? Или же считай заново все делать?
Писал не я его ранее, я только обновляю
А какая проблема ? Ошибки какие ? Вероятнее всего связано либо с каким-то модулем либо php версией
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #552 из 554
Что-то со стилями, видимо не корректно обновления встали. Можно модулем поверх залить и все
А может быть можно как-то получить архив с обновлениями версии 1?
Не выходит у меня восстановить работу шаблона.
Так бы попробовал шагово обновится по версиям не переходя на версию 2
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #554 из 554
А может быть можно как-то получить архив с обновлениями версии 1?
Не выходит у меня восстановить работу шаблона.
Так бы попробовал шагово обновится по версиям не переходя на версию 2
Сохраненной нет а выкачать с ключа уже не дает такую старую версию, могу вам обновить с ключа, в личку
 
    Сейчас эту тему никто не читает.

Похожие темы

Частично перестает работать сайт после обновления 1С-Битрикс 1С-Битрикс обновил версии...
Ответы
0
Просмотры
915
Назад
Сверху Снизу