Вопрос вообще спорный, как лучше делать. Понятно, что если введено количество ставок по одной позиции, то как эти позиции нужно заранее в записи развернуть/создать, пускай даже и пустые, чтоб они обрабатывались в СКД.
(3) средствами запроса и скд это обычно контр-продуктивно. там логика прямая - данные - группировка - вывод по группам.
а тут надо против логики пойти и в группы насовать неизвестное заранее число пустых строк. ну ок, выведем в детзаписях, все равно где-то эти пустые строки надо брать и брать столько сколько надо, а не рандомное число.
(3) Сделай пустой шаблон по всей штатке с нужным количеством 0, а потом заполни не пустые занятыми фио. Можешь селектор использовать (занято, свободно).
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший