Итоговые данные по строковому объекту

Добрый день. Есть справочник сотрудников, должностей и сотрудников. В реестре сотрудников необходимо вывести итоговый список по предприятию с наименованиями подразделений, должностей и количеством сотрудников, задействованных на тех или иных должностях. Ну т.е. если есть должность Менеджер и трудятся 2 человека, то так и должно считаться Менеджер, 2 чел. А не строкой, Менеджер 1 чел, Менеджер 1 чел. Как это реализовать? Пример во вложении.
 

Вложения

Vladimir

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

Так как в структуре объекта есть привязка к списку должностей, то доступ к этому списку надо ограничить: создать форму связи над объектом и заблокировать управление в форме, а при работе по сети - не давать доступа к данному объекту, чтобы при выборе должности нельзя было производить изменение записей.

P.S. Замечу, что у Вас не лучшим образом построена структура реестра сотрудников. Объект "Карточка сотрудника" является дочерним в форме "Реестр сотрудников". Т.е. любой сотрудник, во-первых, привязан только к одной записи реестра и его нельзя переместить (если только в объекте не открыть доступ к полю ссылки на реестр). Во-вторых велика вероятность дублирования сотрудника, что и получилось в случае с Сидоровым С.П.
Было бы лучше создать промежуточный объект списка сотрудников в реестре, ссылающийся на объект карточки сотрудника. А в карточке сотрудника ещё можно добавить дочерний список истории должностей.
Также можно добавить зависимость списка должностей от подразделения (при помощи передачи параметра).

P.P.S. В следующей версии конструктора расчётные операции будут работать со строковыми полями и можно будет избежать преобразования строковых значений к числовым.
 

Вложения

Через string надо знать название должностей. По умолчанию заводить несколько сотен не удобно. Когда планируется новая версия? А можно в примере поправить как лучше создать через промежуточный объект? А то с этим реально я второй раз переделываю проект из за этих взаимосвязей подразделения должности сотрудники. Как их правильнее связать?
 

Vladimir

Администратор
Команда форума
несколько сотен
У Вас большая организация... :oops:
Когда планируется новая версия?
К сожалению - не скоро, возможно ещё полгода.
как лучше создать через промежуточный объект?
Как уже писал - это объект списка сотрудников (ФИО, ДР и прочие личные данные), а промежуточный объект содержит поле ссылки на сотрудника и служебные данные. Вот его и добавлять в качестве дочернего в форму связи. А при создании записи в дочернем списке - надо выбирать сотрудника из существующего списка.
я второй раз переделываю проект
Всего лишь второй раз? Поверьте - это совсем не много. ;)
Будет даже нормально, если Вы скажете, что переделываете его в 10-ый раз. Это и опыт, и мастерство, и лучшее понимание конструктора.
 
Спасибо за ответы. Второй раз, я имел ввиду, что весь проект сделал, и пришлось просто с ноля его делать, из-за неправильной связи подразделения должности сотрудника, так не все данные из дочернего объекта попадают потом в печатные формы....
 
Сверху Снизу