В списке полей элемента можно сразу выводить значения его свойств. Обязательно должно быть использованы поля IBLOCK_ID и ID, иначе не будет работать корректно.
update items SET item = CONCAT(department_id, '_',type_id, '_', LPAD(item_id,4,'0'));
Пользователи (60+), которые вбивают эти данные привыкли вбивать формата 001, и чтобы время не терять на эти нули, в поле они уже будут подставлены, а в базу пойдут без них.
001
По описанию структуры не понятно почеме для страницы категории извлекаются все товары через подкатегории, вместо того что бы добавить прямую связать товара с этой категорией?
непрямое - когда картинка вставлена в страницу, и загружается страница.
Прямое обращение - адрес самой картинки.