Вход | Регистрация
 
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)

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