Помогите, пожалуйста, с решением проблемы. Она, наверное, не у меня одного должна проявиться. С Линуксом знаком поверхностно, поэтому прошу помощи. Есть VMBitrix 7.5.5 на VPS с виртуализацией Virtuozzo. При попытке апгрейда php с 7.4 до 8.1 получаю ошибку
Ага, выясняю, что http://vzdownload.swsoft.com отдает 403 всем российским IP. Хостеры говорят, что альтернатив вписать туда какой-то другой адрес нет. Перед тем как собирать вещички и переезжать на KVM, пробую такой трюк - иду под VPN c браузера на http://vzdownload.swsoft.com/download/mirrors/, скачиваю нужные папки и файлы, воспроизвожу их на своем сайте, указываю путь до них в vz.repo и запускаю апгрейд PHP. Получаю ошибку, смотрю лог, вижу там в поле msg
Не понимаю, в чем ошибка и означает ли она, что мой трюк не сработал и выхода нет, надо всем установкам моим и клиентским со всех Virtuozzo переезжать на KVM
проверил с других серверов других хостингов, то же самое. Попробовал с браузера через VPN с гонконгского IP - добро пожаловать, все нормально, заходи не стесняйся. Похоже, открыть этот mirrorlist с российских IP можно будет совсем нескоро. Что делать, может, есть какой-то запасной, который можно поставить в конфиги yum ?
написал: Мне кажется Вы просто что-то не понимаете, необходимо передать в метрику данные о том, что заказ оплачен.
Может быть, я неправильно представляю работу метрики и есть какое-то тайное знание, мне недоступное, но она не оперирует такими сущностями, как "заказ". Главная сущность, с которой она оперирует - это посетитель, которого она идентифицирует самостоятельно и этот идентификатор вы никаким образом не получите, чтобы потом от имени этого посетителя отправить метрике какое-то событие. Да, вы можете сильно потрудившись, например, в админке разместить скрипт, который отправит метрике сигнал о достижении цели. Но это будет сигнал о том, что данный посетитель, в вашем случае менеджер, достиг цели ХХХ. Но не покупатель ее достиг.
написал: еще же менеджеры меняют в оплатах статус на "оплачен"!
а зачем вам в метрике информация о менеджерах? Чтобы она считала их идеальными покупателями, ретаргетировала им рекламу и т.п.? Все просто - событие отправляется из браузера пользователя и если оно отправится из браузера другого пользователя (менеджера), то метрика и покупателем будет считать этого менеджера. Т.е. единственный способ - это как-то заставить покупателя, оплатившего товар, зайти на специфическую страницу, посещение этой страницы и будет целью. Либо заставить его сделать в браузере на сайте некоторое действие, которое может сделать только покупатель, оплативший товар, и по этому событию джаваскриптом отправить метрике сигнал о достижении цели.
и не будет работать. Ставьте скрипт на страницу успешной оплаты, туда, куда платежная система перенаправляет посетителей после оплаты. Или без скрипта, просто в метрике тип цели - посещение этой страницы
там вроде ключи изменились https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=12183#iblock_18_6_200 Но у меня есть большое подозрение, что все равно SubQuery не будет подцеплять таблицы каталога. Это только подозрение, досконально логику работы GetList тяжело в голову уложить, он обширный, могу ошибаться. Но, похоже, подключать или не подключать модуль торгового каталога решается по ключам основного фильтра, а при обработке SubQuery ключи на вхождение CATALOG не проверяются.
Я бы сначала сделал GetList с этим фильтром по инфоблоку 27, посмотрел, что он отдает. Если '>CATALOG_QUANTITY' => 2 не понимает, значит не SubQuery виноват, в другом месте нужно копать. Если понимает, то смотреть, как GetList внутри себя обрабатывает результат SubQuery. Или, если мало времени, плюнул бы на это, получил гетлистом массив и отдал бы его в фильтр компонента, если это не сильно сайт затормозит.
В общем, если кого коснется эта задача - не советую ни в битриксовском фреймворке, ни даже на голом php это делать. Кроме проблем с буфером есть проблема с блокировкой аякс запросов сессией, зависанием из-за запуска огромного количества бесконечных циклов и т.п. Беспроблемный вариант - простенький скрипт на node.js, который может написать и новичок, ему битрикс по curl отправляет данные по нужным событиям, а он сразу транслирует их нужным клиентам в их EventSource. Если нужно, браузер клиента может обратиться к битриксу за более подробными данными по аякс. Я для node.js арендовал простенький vps за 79 руб в мес, которого более чем хватает, но, наверное, можно его и на той же машине установить, где и сайт.
Пытаюсь сделать SSE (Server Send Events) на БУС под VMBitrix, но, похоже, не хватает понимания работы буферизации. Обычная конструкция из примеров для SSE для отдачи буфера типа ob_end_flush и flush не работает, судя по тому, что пишут знающие люди, из-за настроек nginx gzip on - нужно off. Ок, попробовал на всякий случай flush из битрксовского класса HttpResponse - буфер отдает, но сразу же после получения данных браузер получает в EventSource и событие error, которое, видимо, говорит о том, что сервер разорвал соединение. Есть подозрение, что несколько раз HttpResponse::flush в одном скрипте отдавать буфер вообще не будет. Стоит ли дальше экспериментировать и копаться в HttpResponse, надеясь найти в его коде секрет отдачи буфера при nginx gzip on и заставить его отдавать буфер браузеру в цикле? Или не стоит тратить время, а для SSE завести отдельный чахленький сервер чисто для двух скриптов - получить данные с основного , положить в БД и отдавать из БД в EventSource браузеров пользователей? Настройки nginx основного менять не хочется.
Если нет спортивного интереса написать скрипт экспорта самостоятельно, то проще купить дешевый модуль на маркетплейсе, там есть такой, CSV экспорт с фильтром товаров.
Цитата
штатно через excel в админке, 22 тыс товаров в выборке, но страница зависает и все
обратите внимание на параметр "Время выполнения шага" - по умолчанию он 0, т.е. выгружать все сразу. Поиграйте с этим параметром, чтобы не зависало.
судя по описанию, имеются в виду коробочные версии типа Корпоративный портал, а не облачные. У них много своих специфических сущностей, поэтому работодателю нужен человек, имеющий опыт работы с этими сущностями. Принципиально разработка модулей и компонентов для них не отличается от написания модулей и компонентов для БУС, но человеку, не имеющему опыта работы с этими сущностями, придется потратить некоторое время на знакомство с ними, их изучение, поэтому работодатель ищет разработчика с опытом разработки именно для корпоративного портала, он же коробочная Битрикс24.
написал: Админ сайта, через панель управления меняет пользователю группу принадлежности (снимает с 2х групп и присваивает новой группе, например было 2и3, стало 8)
используйте событие OnAfterUserUpdate Или OnBeforeUserUpdate, если вам нужно знать, в каких группах был пользователь до изменения.
написал: Может перестать работать регистрация в компонент оформления заказа, например.
Хотелось бы, чтобы
а) заказ можно было оформить с авторегистрацией б) не позволять спамерам самостоятельно регистрироваться тысячами, в) не кастомизировать компонент оформления заказа
Вижу в компоненте sale.order.ajax , что параметр IS_LANDING_SHOP, выставленный в Y, вроде бы (если не ошибаюсь) позволяет игнорировать опцию new_user_registration. Но что это за параметр ( в документации его не нашел) и на что он еще влияет не знаю. Стоит ли с ним экспериментировать, сможет ли он решить все три вышеперечисленные хотелки без неприятных побочных эффектов?
не уверен, что правильно понял вашу проблему, но если нужно просто перегенерировать Летс енкрипт, то:
Если генерируете через dehydrated, то у него есть ключ --force, который заставляет перегенерировать сертификат, даже если срок еще не истек. В битрикс VM из консоли генерация запускается сценарием /etc/ansible/roles/web/tasks/dehydrated.yml но там по умолчанию --force обычно стоит. Может, убрали - посмотрите в строке