Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ЗУП 2,5

ЗУП 2,5
Я
   lite777
 
19.12.18 - 13:45
ЗУП 2,5 нужно вывести список сотрудников которые  проработали меньше месяца ,желательно с датой приема и увольнения.
пример обращения к регистру -

Запрос.Текст =
                "    ВЫБРАТЬ  РаботникиОрганизаций.Сотрудник КАК Сотрудник,
                // |РаботникиОрганизаций.Организация,
                 |РаботникиОрганизаций.ПодразделениеОрганизации как ПодразделениеОрганизации ,
                 |РаботникиОрганизаций.Должность   ,
                 |РаботникиОрганизаций.ПериодЗавершения  

                 |ИЗ
                 |РегистрСведений.РаботникиОрганизаций.СрезПоследних(&д2) КАК РаботникиОрганизаций "
                
                + ?(ВыбПодразд=Справочники.ПодразделенияОрганизаций.ПустаяСсылка(), "    ", " ГДЕ
            |РаботникиОрганизаций.ПодразделениеОрганизации = &ВыбПодразд  И
            |РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)   " )
 
 
   Alexandr_U1982
 
1 - 19.12.18 - 13:57
Как определять, что сотрудник отработал меньше месяца?
Если сотрудник принялся на работу 15.11.2018, а уволился 14.12.2018 - это меньше месяца? А если уволился 15.12.2018?
   Homer
 
2 - 19.12.18 - 14:00
А зачем через регистр? у сотрудники есть реквизиты. С твоим уровнем подойдет.
   lite777
 
3 - 19.12.18 - 14:11
да с 15 по 14 пусть будет месяц )
   lite777
 
4 - 19.12.18 - 14:13
Симсон, а чем тебе мой уровень не нравиться ,ты не ГОМЕР ЛИ СИМСОН
   Alexandr_U1982
 
5 - 19.12.18 - 14:19
Как вариант:

ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник КАК Сотрудник,
    РаботникиОрганизаций.Период КАК ДатаПриема
ПОМЕСТИТЬ ВТПриемНаРаботу
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник КАК Сотрудник,
    РаботникиОрганизаций.Период КАК ДатаУвольнения
ПОМЕСТИТЬ ВТУвольнения
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТПриемНаРаботу.Сотрудник КАК Сотрудник,
    ВТПриемНаРаботу.ДатаПриема КАК ДатаПриема,
    ВТУвольнения.ДатаУвольнения КАК ДатаУвольнения,
    РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) КАК ОтработаноДней
ИЗ
    ВТПриемНаРаботу КАК ВТПриемНаРаботу
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТУвольнения КАК ВТУвольнения
        ПО ВТПриемНаРаботу.Сотрудник = ВТУвольнения.Сотрудник
ГДЕ
    РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) < 30
   lite777
 
6 - 19.12.18 - 14:22
Да спасибо ,интересный код!
   Alexandr_U1982
 
7 - 20.12.18 - 12:38
(6) Вот так вот более правильно:
ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник КАК Сотрудник,
    РаботникиОрганизаций.Период КАК ДатаПриема
ПОМЕСТИТЬ ВТПриемНаРаботу
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник КАК Сотрудник,
    РаботникиОрганизаций.Период КАК ДатаУвольнения
ПОМЕСТИТЬ ВТУвольнения
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТПриемНаРаботу.Сотрудник КАК Сотрудник,
    ВТПриемНаРаботу.ДатаПриема КАК ДатаПриема,
    ВТУвольнения.ДатаУвольнения КАК ДатаУвольнения,
    РАЗНОСТЬДАТ(ВТПриемНаРаботу.ДатаПриема, ВТУвольнения.ДатаУвольнения, ДЕНЬ) КАК ОтработаноДней
ИЗ
    ВТПриемНаРаботу КАК ВТПриемНаРаботу
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТУвольнения КАК ВТУвольнения
        ПО ВТПриемНаРаботу.Сотрудник = ВТУвольнения.Сотрудник
ГДЕ
    ВТУвольнения.ДатаУвольнения < ДОБАВИТЬКДАТЕ(ВТПриемНаРаботу.ДатаПриема, МЕСЯЦ, 1)

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует