Условный код такой:
[CODE]<?php
set_time_limit(0);
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule('iblock');
date_default_timezone_set('Asia/Novosibirsk');
$arOrder = Array("ID"=>"ASC");
$arFilter = Array("IBLOCK_ID"=>5, "IBLOCK_SECTION_ID"=>"506","ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$arSelect = Array("ID","IBLOCK_ID","NAME","DETAIL_PAGE_URL","PROPERTY_KRATNOST_DLYA_SAYTA");
$res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement()){
$arFields = $ob->GetFields();
var_dump($arFields);
}
echo "\n"."final"."\n";
[/CODE]
Сокращенно дерево выгрузки можно изобразить так:
[B]
Скрытый текст |
|---|
Сантехника (ID: 303) [COLOR=#ff00ff]..... куча других узлов[/COLOR] ---- Унитазы (ID: 500) -------- Напольные (ID: 501) 30 товаров -------- Подвесные (ID: 502) 20 товаров -------- Арматура (ID: 504) ------------ Спускная [COLOR=#00a650](ID: 506)[/COLOR] 20 товаров ------------ Подводка (ID: 507) 30 товаров [COLOR=#ff00ff]..... куча других узлов [/COLOR]Канализация (ID: 700) ---- Арматура для унитазов (ID: 701) ------------ Спускная арматура [COLOR=#00a650](ID: 752[/COLOR][COLOR=#00a650])[/COLOR] 20 товаров ------------ Подводка боковая (ID: 768) 30 товаров |
[/B]
По сути в категории ID = 506 и ID = 752 выгружается один и тот-же товар из одной категории в 1С (через дерево выгрузки).
Проблема в параметре [B]"IBLOCK_SECTION_ID"[/B] у [B]$arFilter
[/B]
Если поставить 506, получим пустоту
Если 762 получим, то что нужно
С не дублирующимися узлами в выгрузке проблем нет.
Внешний код, Символьный код - разные. Оба каталога активны.
[B][COLOR=#ee1d24]Вопрос:[/COLOR][/B] [B]как заставить CIBlockElement::GetList вернуть данные для 506 (нужен для обхода всех категорий по cron)[/B]
[COLOR=#0054a5][B]1С-Битрикс: Управление сайтом 17.0.9[/B][/COLOR][COLOR=#0054a5][B] (обновить не вариант, много кастомизации под B2B).[/B][/COLOR]