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

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

Регистрация
02.06.21
Донат
50.00 ₽
Сообщения
17,900
Решения
2
Реакции
22,207
Веб-сайт
itnull.info
Что делает скрипт?
Он позволяет скачать модули и дельта обновления к ним используя ключ битрикса.
Все обновления скачиваются в папку /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. Если процедура установки решения того требует, то запускаем Визард установки решения или на главной странице жмем кнопку "Опробовать новое решение".

NEW* Новая версия скрипта v2.4.1, совместимость с PHP 8.1 и выше.
  • Исправлено отображение установки.
  • Возможность изменять сервер обновлений.
  • Добавление/удаление модулей в/из not_mine.php

Измененная инструкция после обновления скрипта до версии 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. При установке решения, бесконечная загрузка, проблема наблюдается редко, решение:
Включить режим правки
 
Последнее редактирование:
Реакции:
  • Мне нравится
Реакции: kroki, AlexBeleckiy, sl.max и 86 других
По моему это из-за обновлений битрикс(когда он просит обновить систему обновлений) при установленном скрипте ранее, скрипт патчит 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 платформе работать не будет. корректно.
@maxisoft выделите время, помогите нам) вы же участвовали в доработке уже)
 
Реакции:
Как и говорил выше скрипт нужно обновлять на 24 платформе работать не будет. корректно.
После установке модуля АСПРО на 23 версии вылезла та же ошибка…
Видно обращается к битриксу и что-то новое догружает
 
Реакции:
После установке модуля АСПРО на 23 версии вылезла та же ошибка…
Видно обращается к битриксу и что-то новое догружает
Блин, я вот сегодня ставил скрипт на последнюю версию и чистую битрикс, php 8.1, не увидел ни каких ошибок
 
Реакции:
Блин, я вот сегодня ставил скрипт на последнюю версию и чистую битрикс, php 8.1, не увидел ни каких ошибок
Так же
Чистый битрикс 23й версии, 8.1, всё ок, установил максимум и после обновления страницы ошибка(
 
Реакции:
@maxisoft давай править )
 
Реакции:
  • Мне нравится
Реакции: strelvlad
я не правлю я переписываю вссе отдельным модулем будет, с некоторыми другими фишками например продлить демо ключ и прочее.
 
Реакции:
  • Мне нравится
Реакции: Sound
Реакции:
Реакции:
@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 · Просмотры: 12
Реакции:
После установки модуля Deluxe через скрипт нативной установки, обратно поменял сервер обновления с localhost на , чтобы установить из Маркетплейса Битрикс бесплатный платёжный модуль. Но возникает ошибка: [MP_LICENSE_VIOLATION] В вашу лицензию не входит модуль Deluxe - многофункциональный интернет-магазин 2 в 1 (dw.deluxe). Вы должны удалить этот модуль.

Как это обойти?
Так нужно его скрыть в not_mine.php
 
Реакции:
    Сейчас эту тему никто не читает.

Похожие темы

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