|
Как корректно проверить уволен сотрудник или нет | ☑ | ||
---|---|---|---|---|
0
Alekzander Wolf
11.08.16
✎
12:02
|
УПП 1.3
Как наиболее корректно проверить уволен работник или нет. На ум приходит два способа: это запрос к регистру РаботникиОрганизации и если занимаемых ставок 0, то сотрудник считается уволенным. И если совсем лень можно сделать проверку по реквизиту ДатаУвольнения в Сотруднике если Сотрудник.ДатаУвольнения <> Дата(1,1,1), то сотрудник уволен (менее корректный способ т.к. , как мы знаем, данные лучше брать из регистров). Думаю, что должна быть какая-то процедура в общем модуле, которая возвращает по параметру "сотрудник" его текущее состояние уволен он или нет. И какой способ вы используете, если вам нужно быстро отобрать уволенных (или наоборот работающих) сотрудников с помощью консоли запросов (т.е. сделать фактически проверку работает сотрудник в данный момент или нет). |
|||
1
Горогуля
11.08.16
✎
12:03
|
а РС КадроваяИстория - это из этой оперы?
|
|||
2
piter3
11.08.16
✎
12:05
|
(1) бинго
|
|||
3
Господин ПЖ
11.08.16
✎
12:06
|
>ДатаУвольнения в Сотруднике если Сотрудник.ДатаУвольнения <> Дата(1,1,1), то сотрудник уволен
она может не проставиться лучше в кадровую историю смотреть |
|||
4
impulse9
11.08.16
✎
12:07
|
(0) занимаемые ставки равны 0 у декретниц, к примеру
Сотрудник может быть уволен, а потом опять принят |
|||
5
piter3
11.08.16
✎
12:08
|
(4) Нет.Если по уму то будет временно освобожденная,но это уже к сабжу не имеет отношение.
Может поэтому и смотриться на дату |
|||
6
Alexandr_U1982
11.08.16
✎
12:11
|
(0) Смотреть регистр "РаботникиОрганизации" и анализировать ресурсы "ПричинаИзмененияСостояния", "ПричинаИзмененияСостоянияЗавершения"
|
|||
7
piter3
11.08.16
✎
12:12
|
РаботникиОрганизаций.СрезПоследних(НужнаяДата)
ГДЕ ПричинаИзмененияСостояния <> Увольнение |
|||
8
шаэс
11.08.16
✎
12:23
|
(7) а в типовых запросах так?
|
|||
9
piter3
11.08.16
✎
12:26
|
(8) в смысле?
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Сотрудник.Физлицо КАК Физлицо ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних( &НачалоГода, Организация = &ГоловнаяОрганизация ) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) |
|||
10
Alekzander Wolf
11.08.16
✎
12:28
|
(7) ВЫБРАТЬ РАЗЛИЧНЫЕ
РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование, 1 КАК Количество ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСреза, ПричинаИзмененияСостояния <> &ПричинаИзмененияСостояния) КАК РаботникиОрганизацийСрезПоследних УПОРЯДОЧИТЬ ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование 2487 строк вышла, хотя сотрудников по отчету "Списки сотрудников организаций" на эту дату 638 |
|||
11
Alexandr_U1982
11.08.16
✎
12:30
|
(10) не так
|
|||
12
Alekzander Wolf
11.08.16
✎
12:30
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование, 1 КАК Количество ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСреза, ) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок <> 0 УПОРЯДОЧИТЬ ПО РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование показал 648 |
|||
13
Alekzander Wolf
11.08.16
✎
12:31
|
(11) как?
|
|||
14
piter3
11.08.16
✎
12:31
|
(12)возможно в отчете так и есть,я не помню уже
|
|||
15
Alekzander Wolf
11.08.16
✎
12:32
|
(14) все равно с типовым отчетом не сходиться
|
|||
16
Alexandr_U1982
11.08.16
✎
12:33
|
"ВЫБРАТЬ
| РаботникиОрганизацийСрезПоследних.Сотрудник, | 1 КАК Количество |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаАктуальности, Организация = &Организация) КАК РаботникиОрганизацийСрезПоследних |ГДЕ | ВЫБОР | КОГДА РаботникиОрганизацийСрезПоследних.ПериодЗавершения <= &ДатаАктуальности | И РаботникиОрганизацийСрезПоследних.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1) | ТОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостоянияЗавершения | ИНАЧЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния | КОНЕЦ <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)" |
|||
17
piter3
11.08.16
✎
12:36
|
упс забыл кое-что
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Сотрудник КАК Физлицо, МАКСИМУМ(РаботникиОрганизацийСрезПоследних.Период) КАК Период ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НачалоГода, Организация = &ГоловнаяОрганизация) КАК РаботникиОрганизацийСрезПоследних ГДЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Сотрудник |
|||
18
Alexandr_U1982
11.08.16
✎
12:41
|
(17) А разве срез последних регистра "РаботникиОрганизаций" по каждому сотруднику может вернуть больше, чем одна запись? ;)
|
|||
19
piter3
11.08.16
✎
12:42
|
(18) Прием,перемещение
|
|||
20
Alexandr_U1982
11.08.16
✎
12:44
|
(19) Так у тебя же срез последних. Он вернет последнее состояние сотрудника
|
|||
21
Alexandr_U1982
11.08.16
✎
12:45
|
ПричинаИзмененияСостояния - это ресурс
|
|||
22
RomanYS
11.08.16
✎
12:45
|
(19) в срезе будет только последняя запись.
Проблема в другом: "работающий" <> "не уволенный". |
|||
23
Мимохожий Однако
11.08.16
✎
12:48
|
Можно найти подсказку в форме справочника Сотрудники. Там есть поле со статусом. Возьми оттуда запрос или функцию отображения статуса.
|
|||
24
Alexandr_U1982
11.08.16
✎
12:50
|
(22) если нужно еще вычленить сотрудников, находящихся в декрете/отпуске/командировке/на больничном, то нужно еще анализировать регистр "СостояниеРаботниковОрганизаций".
|
|||
25
Alekzander Wolf
11.08.16
✎
12:54
|
(16) 658 показал (типовой показывает 638)
|
|||
26
Alekzander Wolf
11.08.16
✎
12:55
|
(17) 659
|
|||
27
Alekzander Wolf
11.08.16
✎
12:57
|
А функции нет такой, которая бы возвращала текущее состоянии сотрудника? Может кто-то видел, в ЗУПе насколько я знаю что-то подобное есть.
|
|||
28
Alexandr_U1982
11.08.16
✎
14:03
|
(25)Может у тебя там какие-то отборы установлены?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |