Добрый день, Иван Николаевич.
Т.е. в реестре сотрудников надо произвести подсчёт числа сотрудников каждой из должностей.
1. В объекте реестра надо добавить числовые поля для каждой должности.
2. В объекте должностей - присвоить код каждой должности (у Вас как-раз есть данное поле).
3. Тут же добавить числовое значение для каждой должности, состоящее из составного поля с формулой типа "String(Должности.Наименование=Начальник цеха?1:)]
" и числового поля, куда копируется значение из составного.
4. В форме "Реестр сотрудников" назначить суммирование для каждой должности из дочернего списка.
5. Для удобства можно скрыть поля с нулевым значением.
Так как в структуре объекта есть привязка к списку должностей, то доступ к этому списку надо ограничить: создать форму связи над объектом и заблокировать управление в форме, а при работе по сети - не давать доступа к данному объекту, чтобы при выборе должности нельзя было производить изменение записей.
P.S. Замечу, что у Вас не лучшим образом построена структура реестра сотрудников. Объект "Карточка сотрудника" является дочерним в форме "Реестр сотрудников". Т.е. любой сотрудник, во-первых, привязан только к одной записи реестра и его нельзя переместить (если только в объекте не открыть доступ к полю ссылки на реестр). Во-вторых велика вероятность дублирования сотрудника, что и получилось в случае с Сидоровым С.П.
Было бы лучше создать промежуточный объект списка сотрудников в реестре, ссылающийся на объект карточки сотрудника. А в карточке сотрудника ещё можно добавить дочерний список истории должностей.
Также можно добавить зависимость списка должностей от подразделения (при помощи передачи параметра).
P.P.S. В следующей версии конструктора расчётные операции будут работать со строковыми полями и можно будет избежать преобразования строковых значений к числовым.