Сегодня пришлось разбирать файл импорта, написанный прямыми запросами к базе данных.
Идет update элемента, где явно указывается iblock_section_id в значение XXXX.
После импорта через админу просматриваю элемент, во вкладке "Категории" мой элемент привязан к разделу с ID YYYY.
Удивлен! Снова смотрю в импорт: раздел указан верно. Смотрю напрямую в базу данных, в поле IBLOCK_SECTION_ID стоит указанное при импорте значение XXXX.
Итогом поисков "ошибки" стал следующий вывод:
Существует таблица b_iblock_section_element, в которой хранятся элементы с множественной привязкой к разделам инфоблока. Сюрприз оказался в том, что в случае, если в данной таблице есть запись для элемента с ID 123 и этот элемент в данной таблице привязан к разделу YYYY, то совершенно и полностью игнорируется значение, записанное в IBLOCK_SECTION_ID у самого элемента в таблице b_iblock_element (у нас оно XXXX). Однако, для меня сие стало сюрпризом.
Идет update элемента, где явно указывается iblock_section_id в значение XXXX.
После импорта через админу просматриваю элемент, во вкладке "Категории" мой элемент привязан к разделу с ID YYYY.
Удивлен! Снова смотрю в импорт: раздел указан верно. Смотрю напрямую в базу данных, в поле IBLOCK_SECTION_ID стоит указанное при импорте значение XXXX.
Итогом поисков "ошибки" стал следующий вывод:
Существует таблица b_iblock_section_element, в которой хранятся элементы с множественной привязкой к разделам инфоблока. Сюрприз оказался в том, что в случае, если в данной таблице есть запись для элемента с ID 123 и этот элемент в данной таблице привязан к разделу YYYY, то совершенно и полностью игнорируется значение, записанное в IBLOCK_SECTION_ID у самого элемента в таблице b_iblock_element (у нас оно XXXX). Однако, для меня сие стало сюрпризом.