Имя: Пароль:
1C
1С v8
Задачка. Сколько человек на территории
0 CAPITALIST
 
15.05.12
10:27
Сотрудники при входе на территорию через КП отмечаются ключом. Фиксируется действие "Вход". В обратную сторону "Выход". Все заносится в регистр сведений с периодом в секунду.
Измерение: ФизЛицо, Действие.
Сотрудник может по запарке отметиться дважды на КП. Обе отметки фиксируются. Сотрудник может на обеде выйти за территорию. Сотрудник может прийти на работу в 20.00, а уйти в 08.00 на следующий день. Как правило первая отметка нового сотрудника - это "Выход", т.к. ключ он получает на заводе. Последняя отметка уволенного - "Вход"

Требуется узнать, сколько сотрудников в данный момент на заводе.
Можно было бы в цикле рекурсивно проверять закрыт ли Вход Выходом. Но регистр существует много лет и там много сотен тысяч записей. Сворачивать ежегодно регистр нельзя (Начальник всегда прав!). Поэтому цикл с рекурсией будет сильно тормозить.
А новое колво сотрудников должно отображаться при каждом входе\выходе.

Какой тут можно хитрый запрос написать?
1 Alex S D
 
15.05.12
10:32
а зачем рекурсивно проверять, можно же срез последних взять
2 Philix
 
15.05.12
10:32
ИМХО, тут регистр накопления просится.
Приход (вход) - расход (выход). Остаток - кол-во народу на территории.
Принятые и уволенные: выдачу нового ключа - фиксировать как вход, изъятие ключа у уволенного - как выход.
3 Гефест
 
15.05.12
10:34
(2) У них при выходе не все отмечаются, придется вручную делать списание лишних сотрудников
4 Defender aka LINN
 
15.05.12
10:48
(0) Перенастроить турникеты, и проблема решена.
5 sash-ml
 
15.05.12
11:07
В любом случае получится не количество сотрудников а количество фиксаций карточек, срез последних - "по входу" должен помочь
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс