После выборки методом CIBlockSection::GetList можно задать параметры постраничной навигации (функция NavStart и далее по списку). Придется немного изменить компонент.
Сути это не меняет. Стандартными средствами загнать родительский и дочерний разделы инфоблока в урл не получится, потому как битрикс дает возможность использовать в адресах только один #SECTION_CODE#. Тут или кастомное решение, или верхний уровень структуры (в Вашем случае "Музыкальные инструменты") выносить в инфоблоки.
Вариант, который хотите Вы - только если руками мудрить с обработкой адресов. Другой выход (так сделано в демо-магазине битрикса) - раздел "музыкальные товары" сделать инфоблоком, назначить ему код и работать стандартными средствами.
Описание ошибки Как вариант, возможно Вы используете в file.php какие-нибудь API функции, требующие подключения модуля (пример - CModule::IncludeModule('iblock') и выборка элементов иблока). Под админом модуль подключается системой до кода, под обычным пользователем получается фатальная ошибка PHP и 500 Internal Server Error
В CIblockElement:GetList в параметре arNavStartParams недавно появилось спец. поле для этих целей, вот кусок из документации
Код
"nElementID" - ID элемента который будет выбран вместе со своими соседями.
Количество соседей определяется параметром nPageSize.
Например: если nPageSize равно 2-м, то будут выбраны максимум 5-ть элементов.
Соседи определяются порядком сортировки заданным в параметре arOrder
Кусок кода для подключения bitrix:blog.menu вырван из комплексного компонента? Думаю нужно заменить $component из вызова на false и настроить оба компонента в режиме правки
Все это делать в скопированном в другое пространство имен компоненте. Потом в шаблоне комплексного для детальной страницы его подключить вместо bitrix:news.detail Менее кривого способа придумать не удалось:)