![]() |
![]() |
![]() |
|
ЗУП 2,5 | ☑ | ||
---|---|---|---|---|
0
lite777
19.12.18
✎
13:45
|
ЗУП 2,5 нужно вывести список сотрудников которые проработали меньше месяца ,желательно с датой приема и увольнения.
пример обращения к регистру - Запрос.Текст = " ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, // |РаботникиОрганизаций.Организация, |РаботникиОрганизаций.ПодразделениеОрганизации как ПодразделениеОрганизации , |РаботникиОрганизаций.Должность , |РаботникиОрганизаций.ПериодЗавершения |ИЗ |РегистрСведений.РаботникиОрганизаций.СрезПоследних(&д2) КАК РаботникиОрганизаций " + ?(ВыбПодразд=Справочники.ПодразделенияОрганизаций.ПустаяСсылка(), " ", " ГДЕ |РаботникиОрганизаций.ПодразделениеОрганизации = &ВыбПодразд И |РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) " ) |
|||
1
Alexandr_U1982
19.12.18
✎
13:57
|
Как определять, что сотрудник отработал меньше месяца?
Если сотрудник принялся на работу 15.11.2018, а уволился 14.12.2018 - это меньше месяца? А если уволился 15.12.2018? |
|||
2
Homer
19.12.18
✎
14:00
|
А зачем через регистр? у сотрудники есть реквизиты. С твоим уровнем подойдет.
|
|||
3
lite777
19.12.18
✎
14:11
|
да с 15 по 14 пусть будет месяц )
|
|||
4
lite777
19.12.18
✎
14:13
|
Симсон, а чем тебе мой уровень не нравиться ,ты не ГОМЕР ЛИ СИМСОН
|
|||
5
Alexandr_U1982
19.12.18
✎
14:19
|
Как вариант:
ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, РаботникиОрганизаций.Период КАК ДатаПриема ПОМЕСТИТЬ ВТПриемНаРаботу ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, РаботникиОрганизаций.Период КАК ДатаУвольнения ПОМЕСТИТЬ ВТУвольнения ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПриемНаРаботу.Сотрудник КАК Сотрудник, ВТПриемНаРаботу.ДатаПриема КАК ДатаПриема, ВТУвольнения.ДатаУвольнения КАК ДатаУвольнения, РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) КАК ОтработаноДней ИЗ ВТПриемНаРаботу КАК ВТПриемНаРаботу ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТУвольнения КАК ВТУвольнения ПО ВТПриемНаРаботу.Сотрудник = ВТУвольнения.Сотрудник ГДЕ РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) < 30 |
|||
6
lite777
19.12.18
✎
14:22
|
Да спасибо ,интересный код!
|
|||
7
Alexandr_U1982
20.12.18
✎
12:38
|
(6) Вот так вот более правильно:
ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, РаботникиОрганизаций.Период КАК ДатаПриема ПОМЕСТИТЬ ВТПриемНаРаботу ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РаботникиОрганизаций.Сотрудник КАК Сотрудник, РаботникиОрганизаций.Период КАК ДатаУвольнения ПОМЕСТИТЬ ВТУвольнения ИЗ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций ГДЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПриемНаРаботу.Сотрудник КАК Сотрудник, ВТПриемНаРаботу.ДатаПриема КАК ДатаПриема, ВТУвольнения.ДатаУвольнения КАК ДатаУвольнения, РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) КАК ОтработаноДней ИЗ ВТПриемНаРаботу КАК ВТПриемНаРаботу ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТУвольнения КАК ВТУвольнения ПО ВТПриемНаРаботу.Сотрудник = ВТУвольнения.Сотрудник ГДЕ ВТУвольнения.ДатаУвольнения < ДОБАВИТЬКДАТЕ(ВТПриемНаРаботу.ДатаПриема, МЕСЯЦ, 1) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |