Пример использования метода decompose класса QueryHelper, для исправления ошибки выборки при использовании коллекций ORM Bitrix В коллекции будет доступно:
Элементы инфоблока
Элемент инфоблока связанные с элементами инфоблока ($iblockId)
Значения св-ва с кодом COLOR элементов которые связаны с элементами инфоблока ($iblockId)
use Bitrix\Main\ORM\Query\QueryHelper;
$entity = Iblock::wakeUp($iblockId)->getEntityDataClass();
$referencePropCode = 'PROCEDURE_ID'; // код св-ва тип "Привязка к элементам" которое используется для связи элементов инфоблоков
$query = $entity::query()
->setSelect([
'ID',
'NAME',
'PREVIEW_TEXT',
'PREVIEW_PICTURE' => '',
$referencePropCode .'_ID_VALUE' => $referencePropCode,
$referencePropCode . '.ELEMENT.NAME',
$referencePropCode . '.ELEMENT.COLOR.VALUE'
])
->setOrder(["ID" => "desc"])
->setFilter([])
->setLimit(10)
->setOffset(0);
$collection = QueryHelper::decompose($query);
foreach ($collection as $element) {
$element->getId();
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Если возникли проблемы с очисткой cookies в браузере и не получается авторизоваться, можно инициировать удаление лишней куки со стороны сервера:
1. Если не используется многосайтовость, а поле «Доменное имя» очищено, то надо удалить куку с точкой в начале. Для этого впишите в любую строку файла dbconn.php следующий код: setcookie("PHPSESSID", "", 777, '/', '.site.ru'); где site.ru - имя вашего домена.
2. Если используется многосайтовость или не очищено поле «Доменное имя», то впишите код: setcookie("PHPSESSID", "", 777, '/'); строго без имени домена.
В Битрикс Управление Сайтом отсутствует возможность получения товаров которые указаны в правилах работы с корзиной, простыми словами товаров на которые применяются скидки. Написал класс для реализации такой возможности https://github.com/Cleverscript/ProductDiscount пользуйтесь, буду рад предложениям по доработке!
Администрирование -> Общие настройки -> Параметры серверной информационной базы -> Параметры доступа в интернет Там установить: 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>
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».