Выборка информации в связанной базе

Формулы
AFK
Сообщения: 1
Зарегистрирован: Чт июн 05, 2025 6:24 am

Выборка информации в связанной базе

Сообщение AFK »

Добрый день! Очень нужна помощь экспертов!
Есть у меня две связанные равноправные базы – Дело и Сотрудники.
В базе Дело информация по текущим проектам, в базе Сотрудники информация о задействованных в проектах сотрудниках.
По базе Дело строится статистический отчет где есть столбик – Кол-во сотрудников, задействованных в проекте на начало года. В обеих базах есть реквизит – идентификационный номер проекта (Дела). В базе Сотрудник есть Дата начала участия в проекте и Дата окончания участия в проекте.
Есть нюанс – по проекту в прошлом году работало 3 человека, в текущем подключились еще двое. Теперь по проекту работают 5 человек. Но в отчете нужно посчитать тех трёх, что были в прошлом году.

Вопрос – как посчитать в базе Сотрудники сколько людей занимались текущим проектом в прошлом году и передать эту цифру в статистический отчет базы Дело при совпадении идентификационного номера проекта в обеих базах.

С такой задачей сталкиваюсь впервые. Мануалы читал, но кроме общего понимания, что нужно как-то выбрать массив записей связной базы Сотрудники и передать его в глобальную переменную, которая как-то должна попасть в отчет при совпадении идентификатора (номера) проекта (Дела). Но вот как сформулировать это в формулу сообразить не получается. Подскажите, пожалуйста, как можно реализовать это решение.

Или может как-то можно передать посчитанную цифру в реквизит основной базы (DL35) и формулой ниже в ячейке отчета я мог бы вывести нужную сумму. (DL2 – начало проекта, DL95 – дата окончания проекта, DL35 – количество задействованных сотрудников). Через формулу структуры или Пользовательскую функцию.

IF FIELD(DL2,".",3)<FIELD(@CURRENTDATE,".",3)&((FIELD(DL95,".",3)=FIELD(@CURRENTDATE,".",3))|DL95="") THEN @ret:=DL35;

P.S.
DL100 – поле прямой-обратной ссылки от база Дело к базе Сотрудник
LL100 – поле прямой-обратной ссылки от база Сотрудник к базе Дело

DL4 – идентификационный номер проекта в базе Дело
LL4 – идентификационный номер проекта в базе Сотрудник

LL10 – дата начала работы над проектов в базе Сотрудник
LL75 – дата окончания работы над проектом в базе Сотрудник
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Выборка информации в связанной базе

Сообщение Zuluss »

Вам нужно переделать структуру банка. Она изначально неправильная получилась. Дело в том, что в показанной структуре невозможно будет полноценно работать. Т.е. учитывать время участия. Один сотрудник может начинать участие, потом закончить и начать снова. Кроме того сотрудники могут участвовать в нескольких делах. Что по Вашей структуре реализовать проблематично.
Сделать нужно минимум три базы. По Вашей терминологии Дело, Сотрудники и Участие. Последняя база с полями: Даты начала и окончания, Роль, Сотрудник, Дело.
Гость

Re: Выборка информации в связанной базе

Сообщение Гость »

Эх... Такая база досталась в наследство... Вот я и ломаю голову, как её обжить... Может через вариант третьей базы как-то всё же пойти?
Zuluss
Сообщения: 51
Зарегистрирован: Чт авг 22, 2024 1:35 pm

Re: Выборка информации в связанной базе

Сообщение Zuluss »

Попробуйте сделать упрощенный банк с нейтральными данными и в нем можно будет попробовать.
Ответить