В подобных составных обозначениях военных чинов и званий первая часть обычно не склоняется: генерал-майора, генерал-лейтенанта, капитан-лейтенанта и т. п.
Первая часть составных обозначений военных и государственных чинов и званий не склоняется: генерал-лейтенанта, генерал-майора.
Лучше расположить в таком порядке: командир отделения капитан И. И. Иванов.
Воинские звания, стоящие непосредственно перед фамилией, не являются однородными по отношению к предшествующим приложениям: командир соединения капитан 2-го ранга Е. Л. Леонов; профессор, доктор технических наук генерал-майор С. Г. Сорокин; Герой России, лётчик-испытатель 1-го класса, кандидат технических наук полковник Н. Н. Иванов.
Но: полковник медицинской службы, член-корреспондент АМН, профессор И. П. Петров — распространенное приложение, обозначающее воинское звание, не стоит непосредственно перед фамилией.