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

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

  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1 из 540
Что делает скрипт?
Он позволяет скачать модули и дельта обновления к ним используя ключ битрикса.
Все обновления скачиваются в папку /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. При установке решения, бесконечная загрузка, проблема наблюдается редко, решение:
Включить режим правки
 
Последнее редактирование:
По моему это из-за обновлений битрикс(когда он просит обновить систему обновлений) при установленном скрипте ранее, скрипт патчит 2 файла, но после обновлений патч в одном из файлов слетает! я решил это таким ручным способом, потому как повторно скрипт не патчит файлы
*** Скрытый текст не может быть процитирован. ***
Снимок экрана 2024-06-24 в 13.08.51.webp

Вот так вот в этом файле, так же ошибка после обновления до 24 версии битрикса
 
Надеюсь генерируется этот файл одинаково, после строки кода
PHP:
Расширить Свернуть Скопировать
 ___1696361998(2270).GetMessage(___1696361998(2271)).___1696361998(2272);}
Нужно вставить
PHP:
Расширить Свернуть Скопировать
/*PATCH*/if(file_exists($ff=$_SERVER["DOCUMENT_ROOT"]."/not_mine.php")) require($ff);foreach($arModules as $val){if(isset($_1965111086[$val]))unset($_1965111086[$val]);} /*END PATCH*/return $_1965111086;}

Чтобы получился отрывок кода такой:
PHP:
Расширить Свернуть Скопировать
___1696361998(2270).GetMessage(___1696361998(2271)).___1696361998(2272);} /*PATCH*/if(file_exists($ff=$_SERVER["DOCUMENT_ROOT"]."/not_mine.php")) require($ff);foreach($arModules as $val){if(isset($_1965111086[$val]))unset($_1965111086[$val]);} /*END PATCH*/return $_1965111086;} public static function __GetFooPath()

Далее проверить, можно еще сменить php на другую и обратно, или перезагрузить apache или nginx смотря какой сервер у вас, чтобы бекенд отрабатывал по новой
 
Надеюсь генерируется этот файл одинаково, после строки кода
PHP:
Расширить Свернуть Скопировать
 ___1696361998(2270).GetMessage(___1696361998(2271)).___1696361998(2272);}
Нужно вставить
PHP:
Расширить Свернуть Скопировать
/*PATCH*/if(file_exists($ff=$_SERVER["DOCUMENT_ROOT"]."/not_mine.php")) require($ff);foreach($arModules as $val){if(isset($_1965111086[$val]))unset($_1965111086[$val]);} /*END PATCH*/return $_1965111086;}

Чтобы получился отрывок кода такой:
PHP:
Расширить Свернуть Скопировать
___1696361998(2270).GetMessage(___1696361998(2271)).___1696361998(2272);} /*PATCH*/if(file_exists($ff=$_SERVER["DOCUMENT_ROOT"]."/not_mine.php")) require($ff);foreach($arModules as $val){if(isset($_1965111086[$val]))unset($_1965111086[$val]);} /*END PATCH*/return $_1965111086;} public static function __GetFooPath()

Далее проверить, можно еще сменить php на другую и обратно, или перезагрузить apache или nginx смотря какой сервер у вас, чтобы бекенд отрабатывал по новой
Еще вариант по проще, взять 2 файла эти из нового портала или бекапа (до применения скрипта) и просто заново запустить его чтобы пропатчил их
 
Надеюсь генерируется этот файл одинаково, после строки кода
PHP:
Расширить Свернуть Скопировать
 ___1696361998(2270).GetMessage(___1696361998(2271)).___1696361998(2272);}
Нужно вставить
PHP:
Расширить Свернуть Скопировать
/*PATCH*/if(file_exists($ff=$_SERVER["DOCUMENT_ROOT"]."/not_mine.php")) require($ff);foreach($arModules as $val){if(isset($_1965111086[$val]))unset($_1965111086[$val]);} /*END PATCH*/return $_1965111086;}

Чтобы получился отрывок кода такой:
PHP:
Расширить Свернуть Скопировать
___1696361998(2270).GetMessage(___1696361998(2271)).___1696361998(2272);} /*PATCH*/if(file_exists($ff=$_SERVER["DOCUMENT_ROOT"]."/not_mine.php")) require($ff);foreach($arModules as $val){if(isset($_1965111086[$val]))unset($_1965111086[$val]);} /*END PATCH*/return $_1965111086;} public static function __GetFooPath()

Далее проверить, можно еще сменить php на другую и обратно, или перезагрузить apache или nginx смотря какой сервер у вас, чтобы бекенд отрабатывал по новой
Не одинаково(
Вот такое нашел в строках
То есть такой код есть
PHP 8.1.27

Файла до скрипта нету
Только от старой версии
 

Вложения

  • Снимок экрана 2024-06-24 в 13.58.14.webp
    Снимок экрана 2024-06-24 в 13.58.14.webp
    662.7 KB · Просмотры: 14
Не одинаково(
Вот такое нашел в строках
То есть такой код есть
PHP 8.1.27

Файла до скрипта нету
Только от старой версии
Значит в обоих файлах есть данный патч, значит не поможет это
 
Как и говорил выше скрипт нужно обновлять на 24 платформе работать не будет. корректно.
 
Как и говорил выше скрипт нужно обновлять на 24 платформе работать не будет. корректно.
После установке модуля АСПРО на 23 версии вылезла та же ошибка…
Видно обращается к битриксу и что-то новое догружает
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #431 из 540
После установке модуля АСПРО на 23 версии вылезла та же ошибка…
Видно обращается к битриксу и что-то новое догружает
Блин, я вот сегодня ставил скрипт на последнюю версию и чистую битрикс, php 8.1, не увидел ни каких ошибок
 
Блин, я вот сегодня ставил скрипт на последнюю версию и чистую битрикс, php 8.1, не увидел ни каких ошибок
Так же
Чистый битрикс 23й версии, 8.1, всё ок, установил максимум и после обновления страницы ошибка(
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #433 из 540
я не правлю я переписываю вссе отдельным модулем будет, с некоторыми другими фишками например продлить демо ключ и прочее.
 
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #437 из 540
@maxisoft люди интересуются :)
P/S у меня и предыдущие прекрасно работают пока что
 
Пожалуйста, обратите внимание, если Вы хотите заключить сделку с этим пользователем, что он заблокирован.
После установки шаблона Deluxe через скрипт нативной установки, обратно поменял сервер обновления с localhost на , чтобы установить из Маркетплейса Битрикс бесплатный платёжный модуль. Но возникает ошибка: [MP_LICENSE_VIOLATION] В вашу лицензию не входит модуль Deluxe - многофункциональный интернет-магазин 2 в 1 (dw.deluxe). Вы должны удалить этот модуль.

Как это обойти?
 

Вложения

  • Скриншот 17-07-2024 145027.webp
    Скриншот 17-07-2024 145027.webp
    127.4 KB · Просмотры: 10
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #439 из 540
После установки модуля Deluxe через скрипт нативной установки, обратно поменял сервер обновления с localhost на , чтобы установить из Маркетплейса Битрикс бесплатный платёжный модуль. Но возникает ошибка: [MP_LICENSE_VIOLATION] В вашу лицензию не входит модуль Deluxe - многофункциональный интернет-магазин 2 в 1 (dw.deluxe). Вы должны удалить этот модуль.

Как это обойти?
Так нужно его скрыть в not_mine.php
 
Пожалуйста, обратите внимание, если Вы хотите заключить сделку с этим пользователем, что он заблокирован.

Вложения

  • Скриншот 17-07-2024 150224.webp
    Скриншот 17-07-2024 150224.webp
    58.9 KB · Просмотры: 19
    Сейчас эту тему никто не читает.

Похожие темы

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