Администрирование -> Общие настройки -> Параметры серверной информационной базы -> Параметры доступа в интернет Там установить: 1) Адрес сервера: IP адрес вашей машины. 2) Порт: 8888
Если сайт работает по https, то включите, пожалуйста, в fiddler логирование трафика по https - Tools > Fiddler Options > HTTPS > Decrypt HTTPS traffic option Откройте fiddler и запустите выгрузку. При этом ваши хиты отобразятся в fiddler, сохраните сессию из фидлера в формате saz и приложите её к обращению.
Лог сессии fiddler можете прислать нам, для анализа
Крайне скудна информация о настройке XDebug в офф. документации https://dev.1c-bitrix.ru/learning/cour...ON_ID=3421 Решил поделится личным опытом настройки XDebug в Visual Studio Code для работы с проектами в VMBitrix7.5.1
Предполагается что VMBitrix установлена и настроена сеть как "Сетевой мост", с доступом к серверу по ssh по IP 192.168.0.xxx (см. статью https://dev.1c-bitrix.ru/community/web...log/43682/) В виртуальную машину включён Xdebug из коробки, по этому ставить его не нужно.
2) смотрим ключ IDE какой указана в настройках плагина (по дефолту там "vsc", его и указываем в .ini в параметре xdebug.idekey) VSCode File > Preference > Settings > Extensions > PHP Debug > Ide Key.
3) создаем файл если нет
touch /etc/php.d/z_bx_custom.ini
4) прописываем в /etc/php.d/z_bx_custom.ini такие конфиги (192.168.0.102 это IP хоста c IDE, на него xdebug будет отправлять данные через 9003 порт)
--------------------------------------------------------------------------------------------------------------------- ВАЖНО: параметр "pathMappings" содержит пути на удаленном сервере и на локальной машине где "/" - это адрес папки с кодом (проектом) на сервере, а "${workspaceRoot}" путь к локальным копиям файлов проекта
ВАЖНО: смотрим логи xdebug командой в консоли
tail -f /tmp/xdebug.log
там может быть ошибка связанная с не верно указанными путями в "pathMappings", из за чего не появляются переменные в блоке "VARIABLES" в расширении VSCode "PHP Debug" (по сути отладка не работает). Для этого смотрим настройки соединения с удаленным сервером в .vscode\sftp.json (Ctrl+Shift+P) параметр "remotePath" и если там указано "remotePath": "/" (т.е корень сервера) то и в .vscode/launch.json должно быть соответственно.
[14044] [Step Debug] <- breakpoint_set -i 7 -t line -f file:///home/bitrix/ext_www/dev1-site.ru/home/bitrix/ext_www/dev1-site.ru/test/index.php -n 3
[14044] [Step Debug] WARN: Breakpoint file name does not exist: /home/bitrix/ext_www/dev1-site.ru/home/bitrix/ext_www/dev1-site.ru/test/index.php (No such file or directory).
[14044] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="7" id="140440038" resolved="unresolved"></response>
Как то не сложилось у меня найти годную пошаговую инструкцию по установке и настройке сети BitrixVM7.5.1 Что бы в ней было четко и пошагово описано, как все сделать, что бы на локальной машине под Win10, с использованием VirtualBox крутилась BitrixVM с выходом в интеренет (что бы можно было обновлять\устанавливать пакеты, например откатить версию PHP на 7.3, и тп.).
ТП Битрикс предоставила такие 2 ссылки, и заверила что никаких настроек руками прописывать не нужно (и за то спасибо!)
Отдельно отмечу, что вручную не нужно ничего настраивать. Настройка сети в самом веб-окружении производится через меню веб-окружения 2. Manage localhost - 3. Configure network interface manually. или 2. Manage localhost - 2. Configure network interface via DHCP.
Однако пока я это не сделал именно руками, у меня ничего не получилось (Параметр BOOTPROTO=none? Cтандартно машина ставит при конфигурации из своего меню BOOTPROTO=static, значение none подсмотрел на сервере FiirstVDS с BitrixVM "где все работает"),
единственное чего я добился при настройке из меню виртуальной машины 2. Configure localhost settings -> 2. Configure network interface via DHCP. это выдачу динамического IP машине при старте, при этом ping проходил, но сайт открыть по выданному IP не получалось...
а если я настраивал через меню 2. Configure localhost settings ->3. Configure network interface manually. то ping в консоли не проходил и пакеты я обновлять не мог...
В общем краткая инструкция, может кому то поможет, а может кто то и подскажет этот заветный, правильный порядок действий по настройке сети в CentOS 7, что бы работало: - открытие сайта на BitrixVM по локальному IP и он не менялся при перзагрузке машины - был выход во внешний интернет и можно было обновлять\устанавливать пакеты
1) Конфигурируем сетевой интерфес enp0s3 переходим в меню VM
2. Configure localhost settings - 3. Configure network interface manually вводим там IP для машины 192.168.0.120, маску 255.255.255.0, шлюз 192.168.0.1 (IP вашего роутера), IP DNS серверов (гугла например 8.8.8.8). Проверяем, в должно быть примерно так
2) В файле resolv.conf прописываем IP DHCP серверов из настроек вашего роутера или гугловский или FirstVDS
vi /etc/resolv.conf
nameserver 8.8.8.8
nameserver 82.146.59.250
3) Перезагружаем сетевую службу
service network restart
4) Проверяем проходит ли ping, если проходит то все ок
ping ya.ru
5) Для пущей надежности перезагружаем машину, из меню вертуалки или командой
reboot
6) Проверяем в браузере что открывается установщик битрикса по IP, вводим в адресную строку 192.168.0.120 7) Подключаемся по SSH 192.168.0.120 и проверяем пинг еще раз
ping ya.ru
Если прошел, то УРА на вашей локальной виртуальной машине BitrixVM есть доступ в инет и можно обновлять и устанавливать пакеты!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Если возникли проблемы с очисткой cookies в браузере и не получается авторизоваться, можно инициировать удаление лишней куки со стороны сервера:
1. Если не используется многосайтовость, а поле «Доменное имя» очищено, то надо удалить куку с точкой в начале. Для этого впишите в любую строку файла dbconn.php следующий код: setcookie("PHPSESSID", "", 777, '/', '.site.ru'); где site.ru - имя вашего домена.
2. Если используется многосайтовость или не очищено поле «Доменное имя», то впишите код: setcookie("PHPSESSID", "", 777, '/'); строго без имени домена.
Если вдруг при восстановлении из резервной копии сайта Bitrix на виртуальной машине BitrixVM (7.4.X) вы видите сообщение:
Сайт работал в кодировке UTF-8. Конфигурация сервера не соответствует требованиям. Для продолжения установите настройки PHP: mbstring.func_overload=2 и mbstring.internal_encoding=UTF-8.
Если нам нужно изменить параметры для конкретного сайта. Ведь в системе не один сайт может быть. В конфигурации конкретного сайта по пути /etc/httpd/bx/conf/*.conf Добавить нужные параметры Например: php_admin_value mbstring.func_overload 0 Область, куда добавить не сложно найти. Будет, что-то типа php_admin_value session.save_path /tmp/php_sessions/ext_www/
Затем service httpd restart или systemctl restart httpd.service
OnBeforeEventSend - замена данных для макроса в почтовом шаблоне
Что то я долго искал решение, а как оказалось проблема была в том что входные переменные нужно передавать по ссылке!
Если нужно подставить свое значение в макрос (к примеру #AUTHOR#) почтового шаблона, например компонента обратной связи bitrix:main.feedback то делается это так:
AddEventHandler('main', 'OnBeforeEventSend', "OnBeforeEventSendHandler"); function OnBeforeEventSendHandler(&$arFields, &$arTemplate) { global $USER;
if($USER->IsAuthorized()) { $arFields["AUTHOR"] = 'Юзер залогинен: '.$USER->GetID().' ('.$USER->GetLogin().') '.$USER->GetFullName().', поле формы: '.$arFields["AUTHOR"]; }else{ $arFields["AUTHOR"] = 'Юзер не залогинен, поле формы: '.$arFields["AUTHOR"]; } }
UPD На версии модуля main 21.400.100 и form 21.0.0 выше приведенный код не сработал. А вот на OnBeforeEventAdd сработал, причину так и не понял, но работает!
Сегодня заметил что сайт клиента в Google chrome Версия 79.0.3945.130 (Официальная сборка), (64 бит) работает не адекватно - пункты меню не нажимаются - формы не отправляются при клике на кнопку submit - js события onchange для select не отрабатывают
в консоли ошибок нет, но было вот такое предупреждение:
A cookie associated with a cross-site resource at http://cloudflare.com/ was set without the `SameSite` attribute.
A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`.
You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592
and https://www.chromestatus.com/feature/5633521622188032.
Если у кого то такие же проблемы, то нужно зайти в настройки забив такой URL chrome://flags/ и поставить опцию
Сортировка товаров по наличию при вкл. опции "Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара)"
ПРОБЛЕМА: При установке в настройках модуля торгового каталога, флага "Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара)", перестает работать настройка компонента каталога "Источник данных"-Товары, которых нет на складах: "показывать в конце" и "не отображать".
Поиски решения: Поиски решения были начаты с самого компонента bitrix.catalog который собственно и выводить товары. По логике я ожидал найти в нем ту часть кода которая отвечала бы за выборку (какой то GetList допустим), и которую можно было бы изменить, полностью кастомизировав компонент вынеся его в пространство имен. Но не тут то было... Опять пресловутая "гибкость" сделала свое дело...
Ответ ТП Битрикс: ID 2669755 Выборка происходит в \Bitrix\Iblock\Component\Base::getSeparateList. Что касается сортировки в целом, то при включении настройки Разрешить покупку при отсутствии товара (включая разрешение отрицательного количества товара), недоступных товаров нет в принципе и стандартная сортировка по доступности работать не будет.
РЕШЕНИЕ: 1) добавляем в ИБ товара св-во SORTAVAIL тип число, в него будет записываться сумма "CATALOG_QUANTITY" всех его ТП или в случае если их нет то значение из этого же поля товара (простой товар). 2) Пишем обработчик, на событие обновления элемента каталога "OnProductUpdate" (событие "OnAfterIBlockElementUpdate" не подходит!). Который после изменения параметров товара\его тп, получает товар и все его ТП, и в цикле суммирует все значения "CATALOG_QUANTITY" его ТП. Если товар простой и у него нет ТП то берет его значение "CATALOG_QUANTITY" и также записывает в св-во SORTAVAIL товара
ТП был задан вопрос для чего нас лишили такой необходимой возможности (в крайнем случае, а этот случай именно такой...) изменять выборку так как нужно клиенту, с просьбой создать обращение в отдел разработки.
Как добавить платежную систему в Bitrix D7 При разработке решения, может понадобится что бы мастер, добавил платежную систему для ИМ, но на данный момент документация не полная. Добавить платежную систему PAY SYSTEM в Битрикс D7 можно следующим образом:
Тестирование решения Bitrix для Marketplace перед сдачей на модерацию
Тестирование модераторами решения хоть и нудная, но необходимая вещь. У Bitrix нет инструкции, о том как правильно самостоятельно протестировать свое решение, дабы упростить жизнь себе и модераторам. Составил основной перечень действий, для тестирования решения под marketplace на bitrixlabs.ru
1) создаем сайт на https://bitrixlabs.ru/ 2) в настройках главного модуля прописываем ключ NFR (на котором можно ставить альфа обновления) и снимаем галку "Загружать только стабильные обновления:" 3) создаем купон решения https://partners.1c-bitrix.ru/personal...n_edit.php 4) активируем купон на странице /bitrix/admin/update_system.php 5) переходим на "Установленные решения" /bitrix/admin/update_system.php Купленные решения" и выбираем загрузить "ВАШЕ_РЕШЕНИЕ_НАЗВАНИЕ" 6) после загрузки появится надпись "На ваш сайт были добавлены новые решения:Решение "ВАШЕ_РЕШЕНИЕ_НАЗВАНИЕ" и кнопка "Установить" - нажимаем ее 7) возвращаемся на главную установщика "Установка продукта" и ВАЖНО не выбирая никакого решения жмем "Далее" после чего появится установщик решения 8 ) выбираем установщик решения "ВАШЕ_РЕШЕНИЕ_НАЗВАНИЕ" и выполняем все шаги установки (с галкой "Установить демонстрационные данные..." если таковые имеются)
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».